WPF C# evento click del pulsante in codice dietro

Devo creare un pulsante in codice dietro , ma come faccio a scrivere il loro evento click? è MouseDown? come questo ? Fondamentalmente voglio rilevare se il pulsante viene premuto, poi ho popolare una casella di testo con il testo.

Button btn1 = new Button();
btn1.Content = qhm.Option1;
sp1.Children.Add(btn1);

if (btn1.MouseDown = true)
{
   tbox.Text = qhm.Option1;
}
  • Nessun bisogno di downvote imo, la domanda è posta in un modo che rende più facile rispondere, anche la mostra ‘cosa hai provato’.

 

6 Replies
  1. 5

    Così:

    Button btn1 = new Button();
    btn1.Content = qhm.Option1;
    btn1.Click += btn_Click;
    sp1.Children.Add(btn1);
    
    
    //separate method
    private void btn_Click(object sender, RoutedEventArgs e)
    {
        tbox.Text = qhm.Option1;
    }

    con lambda:

    btn1.Click += (source, e) =>
    {    
        tbox.Text = qhm.Option1;
    };

    è ora possibile accedere alle variabili locali.

    • non c’è nessun altro modo per farlo? perché il mio tbox è in un altro metodo , non ho accesso a tbox
    • C’è. Controllare la mia modifica. Ma il tuo tbox deve essere fatto riferimento lo stesso metodo in cui si sta creando il tuo pulsante.
  2. 1
    ..
    btn1.Click += btn1_Click;
    
    private void btn1_Click(object sender, RoutedEventArgs e)
    {
        ...
    }
  3. 1

    È possibile aggiungere un evento come questo:

            Button btn1 = new Button();
            btn1.Content = qhm.Option1;
            sp1.Children.Add(btn1);
            btn1.Click += btn1_Click;

    Che è possibile modificare il metodo di evento per aggiungere del testo alla casella di testo.

    void btn1_Click(object sender, System.Windows.RoutedEventArgs e)
            {
               tbox.Text = qhm.Option1;
            }
  4. 1

    Registrare un gestore per l’evento click:

    btn1.Clicked += myHandler_Click;
    private void myHandler_Click(object sender, RoutedEventArgs e)
    {
      //your code
    }
  5. 1

    Si desidera iscriversi all’evento click:

    Button btn1 = new Button();
    btn1.Content = "content";
    btn1.Click+=btn1_Click;
    sp1.Children.Add(btn1);

    private void btn1_Click(object sender, RoutedEventArgs e)
    {
        MessageBox.Show("You clicked it");
    }
  6. 0

    Quello che si sta cercando, può essere ottenuto con altri che Eventi, trovare in MSDN spiegazioni circa gli eventi e come può essere utilizzato.

    In C# ci sono diversi tipi di Controlli dell’interfaccia grafica, come il Tasto di Controllo, che ha un numero di eventi, come ad esempio: fare clic su, mouseover, mousedown, doubleclick, etc. Nella guida di MSDN è possibile trovare l’elenco degli eventi supportati per ogni controllo, insieme con le proprietà e i metodi.

    Quindi nel tuo caso, probabilmente si vorrà qualcosa lungo la linea,

        private void Form1_Load(object sender, EventArgs e)
        {
            Button button2 = new Button();
            //Load button in container
    
    
            //Loading events for control
            button2.Click += new EventHandler(button2_Click);
        }
    
        private void button2_Click(object sender, EventArgs e)
        {
            //Do Something
        }

    Quindi, fondamentalmente button2.Click += new EventHandler(button2_Click);, si sta aggiungendo e EventHandler che punti a button2_click, per l’evento Click del pulsante appena creato.

    Spero che questo aiuta!

    Codifica felice

Lascia un commento