Inserimento al volo su combobox DataGridView

di il
1 risposte

Inserimento al volo su combobox DataGridView

Vorrei replicare sulle combobox dei DataGridView l'evento LEAVE che permette all'utente di inserire al volo i dati in un'altra form.
Questo è un codice di esempio che permette di aggiungere all'anagrafica delle città:
private void cbCity_Leave(object sender, EventArgs e)
        {
            //Inserire direttamente la condizione "Se CbCity è diverso da Select", senza aggiungere l'altra condizione
            if(cbCity.Text != "Select")
            {               
                using(SqlConnection conn = new SqlConnection(myconnstrng))
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand("SELECT * FROM Cities WHERE CityName = '" + cbCity.Text + "'", conn);
                    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                    DataTable dt = new DataTable();
                    adapter.Fill(dt);

                    if(dt.Rows.Count == 0)
                    {
                        DialogResult dialogResult = MessageBox.Show("The record " + cbCity.Text + "Does not exist" + "\n" + "Do you want to add it?", "Real Estate Management", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

                        if(dialogResult == DialogResult.OK)
                        {
                            TblCity c = new TblCity();
                                                 
                            c.ShowDialog();
                            c.txtCityName.Text = cbCity.Text;
                            this.Hide();
                        }
                        else
                        {
                            cbCity.Focus();
                            cbCity.SelectAll();
                        }
                    }
                }
            } 
        }
Nel DataGridView ho creato le varie colonne usando la finestra ATTIVITA' di DataGridView e l'opzione MODIFICA COLONNE.
La combobox a cui vorrei associare l'evento LEAVE l'ho chiamata dgvCbCity.

Il problema è che quando vorrei scrivere la prima condizione:
if(dgvCbCity.Text != "Select")
Il compilatore non mi permette di selezionare il metodo text.
Ho provato, allora a scrivere:
if(DataGridView1.Columns["dgvCbCity"].
Non mi appare nessun suggerimento che mi permetta di indicare il testo.

Ho pensato, quindi che ci volesse la creazione di un oggetto usando il ciclo FOREACH, ma non ho ottenuto alcun risultato.

Avete suggerimenti?

1 Risposte

  • Re: Inserimento al volo su combobox DataGridView

    Presumo sia necessario anche il riferimento della riga del DataGridView in modo da intercettare la cella e verificare la proprietà .value
    Non ne sono certo ma dovrebbe essere una roba del genere:
    
    dataGridView1.Rows[Riga].Cells[Colonna].Value = ComboBox.SelectedItem.ToString();
    
Devi accedere o registrarti per scrivere nel forum
1 risposte