Problemi con cambio colore casella di una datagridview

di il
21 risposte

Problemi con cambio colore casella di una datagridview

Salve vorrei cambiare lo sfondo della casella di testo quando il contenuto di una seconda casella è minore di un determinato valore.
Ho impostato il seguente codice
if (double.Parse(verf_dgv.Rows[i].Cells["is_pf_c"].Value.ToString()) <= 1)
                        {
                            ver_max_dgv.Rows[0].Cells["is_max"].Value = verf_dgv.Rows[i].Cells["is_pf_c"].Value;
                            ver_max_dgv.Rows[0].Cells["is_max"].DataGridView.DefaultCellStyle.BackColor = Color.LightGreen;
                        }
                        else
                        {
                            ver_max_dgv.Rows[0].Cells["is_max"].Value = verf_dgv.Rows[i].Cells["is_pf_c"].Value;
                            ver_max_dgv.Rows[0].Cells["is_max"].DataGridView.DefaultCellStyle.BackColor = Color.Red;
                        }
ma non funziona.
Quello che viene fatto è controllare il valore presente nella cella alla riga i (c'è anche un ciclo for che non ho scritto, che mi serve per copiare i valori da una datgrid ad un altra) vedere se minore di 1 ed impostare lo sfondo della casella verde o rosso.
Chiedo indicazioni su dove sbaglio

Grazie anticipate

21 Risposte

  • Re: Problemi con cambio colore casella di una datagridview

    minis ha scritto:


    Salve vorrei cambiare lo sfondo della casella di testo quando il contenuto di una seconda casella è minore di un determinato valore.
    Ho impostato il seguente codice
    if (double.Parse(verf_dgv.Rows[i].Cells["is_pf_c"].Value.ToString()) <= 1)
                            {
                                ver_max_dgv.Rows[0].Cells["is_max"].Value = verf_dgv.Rows[i].Cells["is_pf_c"].Value;
                                ver_max_dgv.Rows[0].Cells["is_max"].DataGridView.DefaultCellStyle.BackColor = Color.LightGreen;
                            }
                            else
                            {
                                ver_max_dgv.Rows[0].Cells["is_max"].Value = verf_dgv.Rows[i].Cells["is_pf_c"].Value;
                                ver_max_dgv.Rows[0].Cells["is_max"].DataGridView.DefaultCellStyle.BackColor = Color.Red;
                            }
    ma non funziona.
    Quello che viene fatto è controllare il valore presente nella cella alla riga i (c'è anche un ciclo for che non ho scritto, che mi serve per copiare i valori da una datgrid ad un altra) vedere se minore di 1 ed impostare lo sfondo della casella verde o rosso.
    Chiedo indicazioni su dove sbaglio

    Grazie anticipate
    
    ver_max_dgv.Rows[0].Columns["is_max"].Style.BackColor = Color.Red;
    
    E' cmq un'operazione che rallenta un pò.
  • Re: Problemi con cambio colore casella di una datagridview

    Grazie funziona perfettamente, non fa nulla se rallenta mi serve per vedere bene le parti non verificate, grazie di nuovo.
    Volevo chiederti, anche se lo inserirò in un specifico thread se sai come poter mettere in alto a sinistra della form del programma , accanto all'iconcina il nome del file che è aperto
  • Re: Problemi con cambio colore casella di una datagridview

    minis ha scritto:


    Grazie funziona perfettamente, non fa nulla se rallenta mi serve per vedere bene le parti non verificate, grazie di nuovo.
    Volevo chiederti, anche se lo inserirò in un specifico thread se sai come poter mettere in alto a sinistra della form del programma , accanto all'iconcina il nome del file che è aperto
    La Form ha una proprietà .Text alla quale puoi assegnare la stringa che vuoi.
  • Re: Problemi con cambio colore casella di una datagridview

    E' vero non ci avevo pensato ora provo
  • Re: Problemi con cambio colore casella di una datagridview

    Ho però un problema come faccio ad associare al nome della from il valore del testo?

    inserendo Form.Text = "Programma"; ad esempi mi da errore, qual è la sintassi giusta?
  • Re: Problemi con cambio colore casella di una datagridview

    minis ha scritto:


    Ho però un problema come faccio ad associare al nome della from il valore del testo?

    inserendo Form.Text = "Programma"; ad esempi mi da errore, qual è la sintassi giusta?
    
    this.Text="Programma";
    
  • Re: Problemi con cambio colore casella di una datagridview

    Ho inserito l'istruzione
    this.Text = "Verifica Maschi Murari  - " + openFileDialog1.FileName;
    sul pulsante apri e così mi da l'intero percorso, è possibile avere solo il nome del file?
  • Re: Problemi con cambio colore casella di una datagridview

    minis ha scritto:


    Ho inserito l'istruzione
    this.Text = "Verifica Maschi Murari  - " + openFileDialog1.FileName;
    sul pulsante apri e così mi da l'intero percorso, è possibile avere solo il nome del file?
    
    string s = openFileDialog1.FileName;
    string[] nome = s.split("\");
    this.Text = "Verifica Maschi Murari  - " + nome[nome.lenght-1];
    
  • Re: Problemi con cambio colore casella di una datagridview

    Grazie mille per le risposte però con la dicitura
     string[] nome = s.Split("\");
    mi da errore non vede il simbolo \ e se lo tolgo mi spezza la paralo e mi fa vedere solo l'ultima parte del nome
  • Re: Problemi con cambio colore casella di una datagridview

    Si scusami, devi usare l'escape, in questo caso la doppia slash e apice singolo
    string[] nome = s.Split('\\');
  • Re: Problemi con cambio colore casella di una datagridview

    Ok perfetto grazie di nuovo
  • Re: Problemi con cambio colore casella di una datagridview

    Volevo chieder un ultima cosa, se assoccio ad un pulsante la creazione di un nuovo file, ho la necessità di azzerare tutte le caselle di testo presenti nella form e nelle form collegate, per poter azzerare tutto attualmente o pulito con il clear() tutte le caselle di caselle di testo. Ma se ne ho molte nelle varie form il procedimento è molto lungo.
    Non c'è un modo per avere tutto pulito e azzerato come se aprissi una nuova form, senza dover associare tutto e pulire?.

    Ho provato con il comando
    Form1 f1 = new Form1();
    ma il risultato non è quello voluto, mi apre una nuova form tutta pulita con quella vecchia sotto e se uso close(), le chiude tutte e due, così se chiudo quella iniziale da cui sono partito per il nuovo programma.
  • Re: Problemi con cambio colore casella di una datagridview

    Quello che intendi fare è un tasto reimposta.
    Devi fare un ciclo foreach tra i vari controlli della form.
    Nel caso sia un TextBox associ il valore di una stringa vuota.
    Prova e poi scrivi cosa eventualmente non va.
    Aprire una nuova istanza del form non è cmq la strada giusta...
  • Re: Problemi con cambio colore casella di una datagridview

    Quello che volevo fare è avere un pulsante con la scritta nuovo, che quando lo clicco mi svuota tutti campi della textbox e mi riporta alla condizione che ho quando lancio l'esecutivo del programma. attualmente ho inserito l'azzeramento di tutte le texbox presenti con il comando clear, ma se ho molte texbox con form collegate è abbastanza scomodo andare a resettare così ogni cosa, volevo chiedere se c' era un metodo più semplice per far la cosa, senza dover richiamare una per una le texbox presenti o le datagrid ed azzerare
Devi accedere o registrarti per scrivere nel forum
21 risposte