Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    105

    [VB.NET] handles di oggetto controllo utente

    Vorrei sapere se è possibile controllare da un form padre l'evento Click di un'oggetto Button di un Controllo Utente.
    Del tipo passare l'Handles dell'oggetto al form padre in maniera che sia il form padre a controllare l'evento?

    grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536

    Re: [VB.NET] handles di oggetto controllo utente

    Originariamente inviato da Adanf
    Vorrei sapere se è possibile controllare da un form padre l'evento Click di un'oggetto Button di un Controllo Utente.
    Del tipo passare l'Handles dell'oggetto al form padre in maniera che sia il form padre a controllare l'evento?

    grazie a tutti
    certo, ma c'è un buon motivo per non fare il metodo button_click public?

    esempio :
    codice:
     public partial class UserControl1 : UserControl
        {
            public EventHandler EventClickProperty { get; private set; } 
            public UserControl1()
            {
                InitializeComponent();
                this.EventClickProperty += new EventHandler(button1_Click);
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                this.BackColor = Color.Black;
            }
        }
    
    public Form1()
            {
                InitializeComponent();
                this.userControl1.EventClickProperty(this, new EventArgs());
            }

    EDIT :

    Scusa non avevo visto vb.net
    adesso provo se è possibile

  3. #3
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    si anche in vb.net

    codice:
    Partial Public Class UserControl1
        Inherits UserControl
        Public Property EventClickProperty() As EventHandler
            Get
                Return m_EventClickProperty
            End Get
            Private Set(ByVal value As EventHandler)
                m_EventClickProperty = Value
            End Set
        End Property
        Private m_EventClickProperty As EventHandler
        Public Sub New()
            InitializeComponent()
            Me.EventClickProperty = New EventHandler(AddressOf button1_Click)
        End Sub
    
        Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
            Me.BackColor = Color.Black
        End Sub
    End Class
    e nel form

    codice:
    Dim istanza As EventHandler
            istanza = Me.UserControl11.EventClickProperty
            istanza(Me, New EventArgs)
    ma c'è qualche ragione particolare per farlo?
    giusto per capire

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    105
    Originariamente inviato da U235
    si anche in vb.net

    codice:
    Partial Public Class UserControl1
        Inherits UserControl
        Public Property EventClickProperty() As EventHandler
            Get
                Return m_EventClickProperty
            End Get
            Private Set(ByVal value As EventHandler)
                m_EventClickProperty = Value
            End Set
        End Property
        Private m_EventClickProperty As EventHandler
        Public Sub New()
            InitializeComponent()
            Me.EventClickProperty = New EventHandler(AddressOf button1_Click)
        End Sub
    
        Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
            Me.BackColor = Color.Black
        End Sub
    End Class
    e nel form

    codice:
    Dim istanza As EventHandler
            istanza = Me.UserControl11.EventClickProperty
            istanza(Me, New EventArgs)
    Ecco è questo che mi serviva, creare una variabile per l'handler, non sapevo come farla.

    Ora provo a vedere se riesco ad implementare correttamente il tutto.

    Originariamente inviato da U235
    ma c'è qualche ragione particolare per farlo?
    giusto per capire
    Si perchè ho creato un controllo utente personalizzato che controlla una form (con dentro un controllo utente personalizzato ) e ho una variabile nel primario che deve cambiare quando nel secondario viene premuto un determinato pulsante.
    Però il fatto è che il secondario non ha solo un'opzione, quindi volevo che fosse diretamente il primario a gestire gli eventi del secondario. Non so se mi son spiegato
    Grazie mille

  5. #5
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    Originariamente inviato da Adanf
    Ecco è questo che mi serviva, creare una variabile per l'handler, non sapevo come farla. xD

    Ora provo a vedere se riesco ad implementare correttamente il tutto ^^



    Si perchè ho creato un controllo utente personalizzato che controlla un'altro controllo utente personalizzato e ho una variabile nel primario che deve cambiare quando nel secondario viene premuto un determinato pulsante.
    Però il fatto è che il secondario non ha solo un'opzione, quindi volevo che fosse diretamente il primario a gestire gli eventi del secondario. Non so se mi son spiegato
    Grazie mille
    si, almeno credo

    buon lavoro.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    105
    Cavoli, non riesco a farlo andare.
    Però ho notato una cosa, che queste istruzioni funzionano solo se il controllo utente è direttamente appartenente al form padre, o mi sbaglio?
    Forse mi son spiegato male (anzi sicuro) però quello che ho io è:
    -un controllo utente personalizzato principale (da ora CUPP);
    -nel controllo utente ho creato un'oggetto di una form (la form è in una classe del tipo dll, quindi non eseguibile da sola);
    -dentro la form (che viene istanziata nel CUPP) c'è un'altro controllo utente personalizzato secondario (da ora CUPS) con dentro dei controlli standard.

    Praticamente cliccando un pulsante in CUPP, compare la form (con dentro CUPS).

    Quello che serve a me è poter controllare l'handler di un oggetto dentro CUPS dalla prima CUPP, perchè c'è una variabile nel CUPP che deve essere modificata quando in CUPS viene premuto un pulsante.

    Spero ora sia più chiaro e che qualche buon uomo mi riesca ad aiutare.

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,462
    A mio avviso, per evitare architetture estremamente complesse e arzigogolate, con relativi problemi annessi, suggerisco di approfondire alcuni design pattern, in particolare quelli comportamentali come l'Observer.

    Si tratta ovviamente di architetture che devono essere approfondite con un minimo di conoscenza, soprattutto riguardo la programmazione ad oggetti, ma il tempo investito è senz'altro meglio speso rispetto a quello di abbozzare una serie di accrocchi per far comunicare oggetti relazionati tra loro.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    Originariamente inviato da alka
    A mio avviso, per evitare architetture estremamente complesse e arzigogolate, con relativi problemi annessi, suggerisco di approfondire alcuni design pattern, in particolare quelli comportamentali come l'Observer.

    Si tratta ovviamente di architetture che devono essere approfondite con un minimo di conoscenza, soprattutto riguardo la programmazione ad oggetti, ma il tempo investito è senz'altro meglio speso rispetto a quello di abbozzare una serie di accrocchi per far comunicare oggetti relazionati tra loro.

    sono pienamente d'accordo (per quel che può importartare il mio parere sicuramente farai le capriole di felicità )


    @Adanf
    non vedendo il tuo codice è molto difficile darti una risposta, non tanto per intervenire a livello di codice, ma per capire l'architettura che stai utilizzando, ma da come l'hai descrittta però sembra che i tuoi problemi siano a livello di scittura di codice in se, mentre credo che dovremmo parlare proprio dell'architettura che potresti/dovresti usare in questo caso, da qui si deduce che probabilmente non è quella giusta, o almeno pare


  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    105
    Originariamente inviato da alka
    A mio avviso, per evitare architetture estremamente complesse e arzigogolate, con relativi problemi annessi, suggerisco di approfondire alcuni design pattern, in particolare quelli comportamentali come l'Observer.
    Il fatto è proprio questo, che non so come implementare correttamente questa cosa, non so quali strutture usare in vb.net

    Originariamente inviato da U235

    @Adanf
    non vedendo il tuo codice è molto difficile darti una risposta, non tanto per intervenire a livello di codice, ma per capire l'architettura che stai utilizzando, ma da come l'hai descrittta però sembra che i tuoi problemi siano a livello di scittura di codice in se, mentre credo che dovremmo parlare proprio dell'architettura che potresti/dovresti usare in questo caso, da qui si deduce che probabilmente non è quella giusta, o almeno pare

    Beh postare il codice la vedo un pò difficile perchè essendo quasi a fine lavoro (ho tralasciato questa parte dell'implementazione proprio all'ultimo perchè non riuscivo) quindi è lungo e non saprei proprio quale parti postare, per l'architettura fai conto che io arrivo dal c++ quindi ho implementato solo le classi le strutture e le sub, usando il "controllo utente personalissato" per fare i due controlli che mi servivano cercando di rendere i 2 controlli "riutilizzabili" il più possibile.

    Più che altro sono gli handler che non riesco a capire e mi sa che in questo caso mi sarebbero utili.

    p.s.: ho visto che c'è anche un modello "Form padre MDI", forse può fare al caso mio per implementare finestre multiple e renderle interconnesse (magari è un metodo già fatto per quello che sto facendo io)?

  10. #10
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    difficile fare un analisi non sapendo nulla del tuo programma, quindi è difficile dire se il "modello form padre MDI" va bene nel tuo caso...
    come prima cosa credo sia fondamentale capire lo scopo del programma, poi bisogrerebbe capire le peculiarità che deve avere ecc.

    se hai voglia, prova a spiegare meglio il tuo programma, magari a livello concettuale, fornendo tipi, membri, derivazioni, astrazioni, e sopratutto motivazioni.
    se poi hai creato qualche diagramma è sempre utile!

    comunque, se può esserti utile (da documentazione msdn) :

    "I delegati sono simili ai puntatori a funzione del linguaggio C o C++.Essi consentono di incapsulare un riferimento a un metodo in un oggetto delegato.L'oggetto delegato può quindi essere passato al codice, che a sua volta chiama il metodo a cui viene fatto riferimento, anche se il metodo da richiamare risulta sconosciuto in fase di compilazione. A differenza dei puntatori a funzione in C o C++, i delegati sono orientati a oggetti, indipendenti dai tipi e offrono una maggiore sicurezza."


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.