Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C#] Variabile sender come sapere chi ha chiamato questo metodo

    Io mi trovo nella condizione di avere alcuni Button che hanno lo stesso Text ma nomi diversi (Btn1, Btn2, ecc.). Al clic questi bottoni chiamano tutti lo stesso metodo però io devo sapere quale di questi bottoni è stato premuto. Il nome del bottone premuto è contenuto nella variabile sender (l'ho visto in fase di debug fermando il mouse sopra alla variabile sender e cliccando sul + vicino a base). Però non sono riuscito da codice ad accedere alla proprietà di sender che contiene il nome del controllo che ha chiamato questo metodo. Come devo fare?
    Lunga vita e prosperità!!
    Usa Mozilla! http://www.mozilla.com

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    134
    se ho capito bene non riesce ad accedere alla proprietà "Name" del bottone che si trova in sender?

    - al posto di:

    sender.Name

    - Prova cosi:

    Ctype(sender, Button).Name

  3. #3
    Originariamente inviato da arthas83
    se ho capito bene non riesce ad accedere alla proprietà "Name" del bottone che si trova in sender?

    - al posto di:

    sender.Name

    - Prova cosi:

    Ctype(sender, Button).Name
    Quello che mi hai scritto tu non è C#. Poi a me se scrivo sender.Name il compilatore mi da errore e anche se scrivo Ctype(sender, Button).Name mi da errore. Io uso C# con Visual Studio 2005.
    Lunga vita e prosperità!!
    Usa Mozilla! http://www.mozilla.com

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    134
    chiedo venia dimentico sempre che le funzioni d qsto tipo non fanno parte del framework ma sn tipiche di VB.Net (almeno da quanto risulta).

    prova così allora:

    Button b = (Button) sender;
    label1.Text = b.Name;

    non so se è il modo più pulito (visto che uso nello 0,1% dei casi C#) ma funziona...

  5. #5
    codice:
    string nomeControllo = ((Control)sender).Name;
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    ma diciamo anche:
    Button bottonePremuto = (Button)sender;
    e poi utilizzi il bottonepremuto
    bottonePremuto.Name
    bottonePremuto.Text...etc
    I got the remedy

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.