Como posso criar um manipulador de clique de botão?

votos
0

Eu tenho um número de botões que piscam em diferentes frequências na minha candidatura Wondows Form. Quando uma freqüência específica é medida na cabeça por um eletrodo, o sinal sofre signalprocessing em MATLAB, daqui em diante a freqüência encontrada são enviados para o aplicativo, onde o valor específico da conexão UDP deve pressionar o botão que tem essa freqüência cintilação específico. Estou um pouco perdido como criar esse manipulador de botão, utilizando os dados que recebo de Matlab. Meu pensamento é:

Valor de conexão ->

if value == 6
{
    button1 is clicked
}
elseif value == 6.5
{
    button2 is clicked
}

e assim por diante.

Todas as ideias qualquer um?


 if(returnData == String.Empty)
        {

        }
        else
        {
            button2.PerformClick();
        }

Aqui o returnData é o incomming dados ongiong a partir da conexão UDP para MATLAB, você isso funcionaria?

E para outra pergunta, eu estou tendo um pouco de dificuldade com conexão UDP, gostaria se pudesse receber os dados que eu estou mandando, agora, eu tenho que pressionar um botão para abrir e receber dados, eu fiz-lo assim , porque eu não poderia atualizar os dados de outra forma. Em mente, eu sou um novato para C #.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Net;


namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        //public UdpClient receivingUdpClient = null;
        public string returnData;
        //public byte[] Receive(ref IPEndPoint remoteEP);
       // private Print print = null;
                    //while (true)
            //{
            public UdpClient receivingUdpClient = new UdpClient(8051);
            //bool done = false;
            //Creates an IPEndPoint to record the IP Address and port number of the sender.  
            // The IPEndPoint will allow you to read datagrams sent from any source.
            //while (true)
            //{
            public IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Parse(127.0.0.1), 8051);
        public Form1()
        {
            InitializeComponent();
        }

    private void Form1_Load(object sender, EventArgs e)
    {



        label1.Visible = false;
        label2.Visible = false;


    }
    void button1_Click(object sender, EventArgs e)
    {

        label1.Visible = false;
        try
        {
            //while (true)
            //{
            // Blocks until a message returns on this socket from a remote host.
            Byte[] receiveBytes = receivingUdpClient.Receive(ref RemoteIpEndPoint);

            returnData = Encoding.ASCII.GetString(receiveBytes);

            Console.WriteLine(This is the message you received  +
                                        returnData.ToString());
            Console.WriteLine(This message was sent from  +
                                        RemoteIpEndPoint.Address.ToString() +
                                         on their port number  +
                                        RemoteIpEndPoint.Port.ToString());
            // }      
        }
        catch (Exception err)
        {
            Console.WriteLine(err.ToString());
        }

        if(returnData == String.Empty)
        {

        }
        else
        {
            button2.PerformClick();
        }
    }

    void button2_Click(object sender, EventArgs e)
    {
        if (SPELL.Text == String.Empty)
        {
            SPELL.Text = SPELL.Text + returnData;
            label1.Visible = true;
        }
        else
        {
            SPELL.Text = null;
            SPELL.Text = SPELL.Text + returnData;
            label1.Visible = true;
            label2.Visible = true;
        }
    }
}

}

Este é o meu pequeno programa de testes no Visual Studio até agora.

Obrigado.

Publicado 16/04/2015 em 11:47
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Se você deseja simular um clique de botão a partir do código por trás, você poderia simplesmente chamar manipulador do botão onde você quiser que a chamada seja feita.

Por exemplo

 if (value == 6)
 {
  this.button1_click(this,new EventArgs()) //button1 is clicked
 }
 else if (value == 6.5)
 {
   this.button2_click(this,new EventArgs()) //button2 is clicked
 }

Eu recomendo que você mover-se melhor a lógica de manipulador o botão para um método separado e chamar o método em vez de chamar o manipulador diretamente.

Respondeu 16/04/2015 em 13:20
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more