Cambio colore a modifiche file

di il
5 risposte

Cambio colore a modifiche file

Salve ho impostato una serie di controlli che mi cambiano il colore al backgroud di pulsanti al variare del contenuto delle celle che ad essi sono collegate per avvertirmi di rieseguire alcuni calcoli per aggiornare correttamente le caselle.

il tutto funziona senza problemi fatta eccezione nell'apertura di nuovi file, in cui viene segnalata la necessità di aggiornamento, perchè le caselle sono cambiate (come io ho impostato nel controllo), ma vorrei che questa cosa (solo per l'apertura di file salvati in precedenza) non si verificasse, in quanto tutti i dati inseriti sono corretti e non vanno aggiornati.

Quindi ricapitolando se cambio il valore di una casella il pulsante associato a tale valore diventa rosso, se clicco e aggiorno il pulsante torna del colore originario, e fin qui tutto ok, se apro un file registrato prima cambia il valore della casella ed lo sfondo del pulsante diventa rosso, questo vorrei evitarlo per tutte le aperture dei file.

Come posso fare?

Grazie anticipate per le indicazioni

5 Risposte

  • Re: Cambio colore a modifiche file

    Non si capisce molto senza codice
  • Re: Cambio colore a modifiche file

    Perché parli di celle che sono prevalentemente un oggetto Excel?
  • Re: Cambio colore a modifiche file

    Ho parlato di celle per l'abitudine ad excell, è da poco che programmo con c#, volevo dire textbox, non ho inserito codice perchè non lo credevo necessario dato che quello che non funziona non so proprio come scriverlo però comunque prova a far capire ciò che è stato fatto per un pulsante associato ad una form secondaria, la stessa cosa si ripete per molti altri pulsanti
    private void c_tb_TextChanged(object sender, EventArgs e)
    		{
          
                     opz_d_inf_btn.BackColor = Color.Red;
                     }
                     
    opz_d_inf_btn è un pulsante che cliccato mi porta ad una form secondaria, mentre c_tb_Text è un textbox che se modificato mi fa diventare rosso il pulsante, cliccando sil pulsante si apre la from secondaria si aggiornano i valori e richiudendo la form esterna con l'inserimento dei valori corretti la dove necessario, viene inserita istruzione affinchè il pulsante ritorni del colore di base (sotto istruzione usata)
    private void ins_d_sup_btn_Click(object sender, EventArgs e)
            {
                scelta_dec();
    			((ver_punz)f1).c_y_tb.Text = cy_scelto_tb.Text.Replace(sepDec1, sepDec2);
    			((ver_punz)f1).c_z_tb.Text = cz_scelto_tb.Text.Replace(sepDec1, sepDec2);
    			((ver_punz)f1).d_y_tb.Text = dy_scelto_tb.Text.Replace(sepDec1, sepDec2);
                ((ver_punz)f1).d_z_tb.Text = dz_scelto_tb.Text.Replace(sepDec1, sepDec2);
                ((ver_punz)f1).opz_d_inf_btn.BackColor = SystemColors.ControlLight;
                Close();
            }


    cliccando sul pulsante inserisci vengono aggiornate le celle da aggiornare e viene riportato del colore originario il pulsante della form principale( ((ver_punz)f1).opz_d_inf_btn.BackColor = SystemColors.ControlLight;)

    Tutto funziona bene, solo che vorrei che il pulsante (opz_d_inf_btn) non diventi rosso nel caso di apertura file salvato precedentemente, diventando rosso solo quando faccio delle modifiche successive all'apertura del file.

    Spero di essere stato più chiaro
  • Re: Cambio colore a modifiche file

    Puoi impostare una variabile bool a livello di modulo, es. mbLoadingFile che imposti a True quando carichi il file, e la resetti a False dopo il caricamento.
    Poi nei TextChange verifichi se mbLoadingFile è True esci dalla routine,
  • Re: Cambio colore a modifiche file

    gibra ha scritto:


    Puoi impostare una variabile bool a livello di modulo, es. mbLoadingFile che imposti a True quando carichi il file, e la resetti a False dopo il caricamento.
    Poi nei TextChange verifichi se mbLoadingFile è True esci dalla routine,
    Mi potresti gentilmente dire come posso impostare questa opzione, inserisco sotto il codice usato per l'apertura file
    private void apri_ttbtn_Click(object sender, EventArgs e)
    		{
    			if (openFileDialog1.ShowDialog() == DialogResult.OK)
    			{
    				soll_vmr_dgv.Rows.Clear();
    
    				ds_apri();
    				string s = openFileDialog1.FileName;
    				string[] nome = s.Split('\\');
    				this.Text = "NOME FORM.text  - [ " + nome[nome.Length - 1] + " ]";
    			}
    
    			aggiorna_carichi_btn_Click(sender, e);
    			
    		}
Devi accedere o registrarti per scrivere nel forum
5 risposte