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: 5462
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 ...
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: 5462
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 ...
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: 5462
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 ...
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: 1704
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: 5462
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 ...
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo