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

    Ottenere il nome dell'oggetto che ha scaturito l'evento.

    Ce l'ho sulla punta della lingua, ma non riesco proprio a rifocalizzarlo.

    Non riesco a ricordare il modo per ottenere il nome dell'oggetto che ha scaturito l'evento, come ad esempio MouseButtonEventArgs, EventArgs ecc ecc..

    Faccio un esempio:

    ho un bottone che si chiama x:Name="bottone1"

    che ha un evento onClick che richiama un void abc:
    "onClick="abc""
    private void abc (object sender, MouseButtonEventArgs e)
    {
    //qui va inserito il metodo per ottenere l'x:Name del bottone
    }

    in questo void, voglio ottenere il nome del bottone che l'ha invocato, che sarebbe "bottone1" per inserirlo in una stringa.

    E' incredibile come ci si possa perdere nelle cose più banali.

    Grazie a tutti per l'eventuale aiuto.

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    VB:
    codice:
    CType(sender, Button).ID.ToString
    C#
    codice:
    ((Button)sender).ID.ToString

  3. #3
    Originariamente inviato da djciko
    VB:
    codice:
    CType(sender, Button).ID.ToString
    C#
    codice:
    ((Button)sender).ID.ToString
    Ciao,
    e se invece non fosse solo un bottone, ma diversi elementi a richiamare lo stesso metodo,
    (ad esempio se impostassi lo stesso metodo su un'immagine, o su un rettangolo...sto lavorando su silverlight)
    quale direttiva dovrei usare?

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    forse farei così :master:

    codice:
            Dim b As Control
            b = TryCast(sender, Button)
            If b Is Nothing Then
                b = TryCast(sender, ImageButton)
                If b Is Nothing Then
                    b = TryCast(sender, LinkButton)
                    If b Is Nothing Then
                        Return
                    End If
                End If
            End If
            PrintLn(b.GetType.ToString) 'restituisce il tipo
            PrintLn(b.ID)
    Pietro

  5. #5
    Ciao, ho trovato la soluzione sul forum ufficiale di Silverlight.

    Bisogna trasformare l'object sender in un FrameWorkElement.

    private void abc(object sender, MouseButtonEventArgs e)
    {
    FrameworkElement a = sender as FrameworkElement;

    a.proprietà a scelta che ti serve;
    }
    In questo modo accedi a tutte le proprietà dell'oggetto a seconda di qualunque tipo esso sia.

    Grazie a tutti per il supporto.

    A presto.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.