Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - cambiare colore alla label
Forum - C# / VB.NET - cambiare colore alla label

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
fabiofabio60 (Normal User)
Newbie


Messaggi: 5
Iscritto: 02/11/2017

Segnala al moderatore
Postato alle 22:37
Giovedì, 02/11/2017
Salve a tutti. Sono nuovo del forum, e da un pò di tempo che mi diletto a programmare in c#.
Ora ho un problema che non riesco a risolvere, ho creato delle label dinamicamente nel TableLayoutPanel, ma nel form non riesco ad individuarle per cambiare il colore.
Grazie antcipatamente per l'aiuto.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5720
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 9:30
Venerdì, 03/11/2017
Se le crei dinamicamente, come puoi individuarle nel form ?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
fabiofabio60 (Normal User)
Newbie


Messaggi: 5
Iscritto: 02/11/2017

Segnala al moderatore
Postato alle 22:50
Venerdì, 03/11/2017
Sempre nel pannel ho creato altri ogetti tipo CHECK BOX ed altri PANEL, e li trovo nel form. Perchè con le label non ci riesco.
Come posso fare?
Grazie per l'aiuto.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5720
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 12:03
Sabato, 04/11/2017
Hai creato dinamicamente anche quelli?

Hai creato tutti questi controlli da codice? O no?

Non si capisce.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
fabiofabio60 (Normal User)
Newbie


Messaggi: 5
Iscritto: 02/11/2017

Segnala al moderatore
Postato alle 16:07
Domenica, 05/11/2017
Ciao, scusa del risponderti in ritardo. Comunque vado a spiergarti quello che ho fatto. Ho inserito nel form un oggetto di nome tabbella, e dentro alla tabella ho creato dinamicamente i pannelli con dentro a sua volta delle label e checkBoxPCB,.
Quest'ultimo oggetto nel form tramite la funzione click riesco a capire quale checkBoxPCB ho premuto, ma le label non riesco a cambiargli il colore.
Grazie

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5720
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 17:32
Domenica, 05/11/2017
Ci fai vedere il codice, perché forse non ci capiamo su cosa vuol dire "creare dinamicamente".


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
fabiofabio60 (Normal User)
Newbie


Messaggi: 5
Iscritto: 02/11/2017

Segnala al moderatore
Postato alle 9:32
Lunedì, 06/11/2017
Buongiorno sottostante il codice che ho creato:

Codice sorgente - presumibilmente C++

  1. // Funzione chiamata solo allo start per creare dinamicamente più pannelli che possono cambiare di numero e dentro ai pannelli le CheckBox con  le Label
  2.  
  3. private void CreaPannelli()
  4. {
  5.         for (int j = 0; j < max_yP; j += 1)
  6.         {
  7.                 tabella.RowStyles.Add(new RowStyle(SizeType.Percent, 100 / max_y));
  8.  
  9.                 for (int i = 0; i < max_xP; i += 1)
  10.                 {
  11.                         // Creo dinamicamente nella Tabella più Pannelli
  12.                         FlowLayoutPanel pannello = new FlowLayoutPanel();
  13.                         pannello.FlowDirection = FlowDirection.TopDown;
  14.                         pannello.Margin = new Padding(1);
  15.                         pannello.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
  16.                         pannello.Name = String.Format("pannello_{0}");
  17.                         pannello.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
  18.                         pannello.Click += pannello_Click;
  19.  
  20.                         // Creo dinamicamente nei pannelli più CheckBox
  21.                         CheckBox checkBoxP = new CheckBox();
  22.                         checkBoxP.Tag = npcb.ToString();
  23.                         checkBoxP.Text = "N. Pannello";
  24.                         checkBoxP.AutoSize = true;
  25.                         checkBoxP.Checked = true;
  26.                         pannello.Controls.Add(checkBoxPCB);
  27.                         checkBoxP.CheckedChanged += checkBoxP_click;
  28.  
  29.                         // Creo dinamicamente nei pannelli più Label
  30.                         Label Label1 = new Label()
  31.                         Label1.Text = "Label1";
  32.                         pannello.Controls.Add(Label1);
  33.  
  34.                         Label Label2 = new Label();
  35.                         Label2.Text = "Label2";
  36.                         pannello.Controls.Add(Label2);
  37.  
  38.                         Label Label3 = new Label();
  39.                         Label3.Text = "Label3";
  40.                         pannello.Controls.Add(Label3);
  41.  
  42.                         tabella.Controls.Add(pannello, i, y);
  43.                 }
  44.         }
  45. }
  46.  
  47.  
  48. //Nella funzione sottostante cambio il colore a tutte le label del pannello, ma non riesco a cambiare il colore alla singola label.
  49.  
  50. private void CambiaColoreLabel()
  51. {
  52.         var control = tabella.Controls[statoWorkPcb];
  53.         FlowLayoutPanel Label = (FlowLayoutPanel)control;
  54.         Label.ForeColor = System.Drawing.Color.Red;
  55. }



Grazie ancora per l'aiuto.

Ultima modifica effettuata da Thejuster il 09/11/2017 alle 12:36
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1903
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 19:59
Lunedì, 06/11/2017

Per prima cosa, dai un nome ad ogni label.
Così sai quale devi cambiare colore.

Non serve scrivere o assegnare un nome alla variabile ma devi darlo al controllo.

Codice sorgente - presumibilmente Plain Text

  1. Label.name = "Label" + Controls.Count();



Cmq, non si è capitato che vuoi fare.

Scrivere richieste criptate non è di aiuto a chi tenta di darti una mano.

Cambiare colore quando?

Quando clicchi sulla label?,
sul check box?
Dove?

Ho la soluzione al tuo problema, ma senza sapere quando e dove vuoi cambiare il colore non riesco proprio ad aiutarti.

Ma provo ad indovinare, può darsi che azzecco...



Codice sorgente - presumibilmente C# / VB.NET

  1. Label lb = new Label();
  2. lb.Text = "Label" + pannello.Controls.Count();
  3. lb.name = "label" + pannello.Controls.Count();
  4. lb.click = CambiaColoreLabel;
  5. pannello.controls.add(lb);
  6.  
  7. private void CambiaColoreLabel(object sender,EventArgs e)
  8. {
  9.  ((Label)sender).BackColor = Color.Red;
  10. }



Per ricercare invece velocemente una label, evita quell'orrore di ciclo.

Codice sorgente - presumibilmente C# / VB.NET

  1. IEnumerbale<Control> c = pannello.Controls.Cast<Control>();
  2. Label lb = (Label)c.Where(x => (x.GetType() == typeof(Label)) && (x.Name == "Label1")).FirstOrDefault();
  3.  
  4. lb.Text = "Cambio nome alla label1 esempio";



etc..

Spero di averti aiutato, ma la prossima volta scrivi dettagliatamente il tuo problema.



PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5720
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 23:40
Lunedì, 06/11/2017
In effetti se scrivi

" ho creato altri ogetti tipo CHECK BOX ed altri PANEL, e li trovo nel form "

come si può capire qualcosa?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo