Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    446

    [c#]Aggiungere un componente bottone

    Ho un bottone e vorrei associare al click del bottone la creazione di un nuovo componente.
    E' possibile?
    ad es io clicco e vorrei che in una determinata posizione comparisse un altro bottone.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Basta creare un'istanza della classe del pulsante

    codice:
    Button myButton = new Button();
    e aggiungere il riferimento alla collezione di controlli del componente che funge da contenitore; ad esempio, all'interno di un form

    codice:
    this.Controls.Add(myButton);
    Non ho verificato il codice funzionalmente e sintatticamente, è solo per rendere l'idea.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    446
    ok, e se invece voglio crearlo io il componente?
    Io ho fatto add-> components->component class
    Poi come devo fare, perchè a disegnarlo sono capace ridefinendo il metodo on Paint, poi definisco delle proprietà che mi interessano, ma non devo aggiungere niente, o meglio una volta che metto le mie proprietà e ridefinisco il metodo Onpaint, quando metto quello che hai detto tu nel mio form, dovrei visualizzarlo?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Se hai creato tu il componente, ti basta sostituire il pulsante dell'esempio con la classe del tuo componente, eventualmente aggiungendo istruzioni per definire posizione e dimensioni del controllo, se la classe che lo identifica non contiene questo tipo di impostazioni (altrimenti, il controllo potrebbe non risultare visibile).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    446
    ho inserito le proprietà del mio nuvo componente, ma quando metto questo

    codice:
     protected override void OnPaint(PaintEventArgs pe)
    mi da questo errore:

    "A namespace does not directly contain members such as fields or methods"
    cosa vuol dire?

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da 83kiara83
    "A namespace does not directly contain members such as fields or methods"
    cosa vuol dire?
    Non hai inserito il metodo all'interno della classe, bensì nel namespace.

    E' una svista, controlla la posizione del metodo all'interno delle parentesi di apertura e chiusura.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    446
    si hai ragione me ne sono accorta dopo, ma cmq mi dà un altro errore:
    "no suitable method found to override"
    vuol dire che devo applicare il metodo onpaint senza override, giusto?

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    446
    Niente ho risolto quel problema ma non funge cmq, mi sa che ho sbagliato nel creare il componente perchè mi dice:

    Argument '1': cannot convert from 'LineaFlusso.rectangle' to 'System.Windows.Forms.Control'

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Temo che tu non abbia ereditato il controllo dalla classe base corretta (ad esempio, System.Windows.Forms.Control), quindi non puoi ridefinirne i metodi (in quanto risultano assenti nella classe base, dato che è errata).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

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