Results 1 to 2 of 2

Thread: [Ressolved] DataGridViewComboBoxColumn SelectedIndexChanged Event

Threaded View

  1. #1

    Thread Starter
    Member kashi_rock's Avatar
    Join Date
    Apr 2006
    Location
    Delhi (India)
    Posts
    55

    Resolved [Ressolved] DataGridViewComboBoxColumn SelectedIndexChanged Event

    Dear Experts,

    I am using a datagridview (C# .NET) with one combobox column and two textbox columns. What I want if user select a value from combobox then program fires a query against the combobox value and populate result in textbox (within the same row). Everything is fine besides that textbox is not getting update instantly. Its being updated after click on another cell and sometimes after many clicks. I m using following code:

    private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
    {
    if(dataGridView1.CurrentCell.EditType.ToString()== "System.Windows.Forms.DataGridViewComboBoxEditingControl")
    {
    SendKeys.Send ("{F4}");
    intRowNum = e.RowIndex;
    }
    }

    private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
    ComboBox combo = e.Control as ComboBox;
    if (combo != null)
    {
    // Remove an existing event-handler, if present, to avoid adding multiple handlers when the editing control is reused
    combo.SelectedIndexChanged -= new EventHandler(ComboBox_SelectedIndexChanged);

    // Add the event handler.
    combo.SelectedIndexChanged += new EventHandler(ComboBox_SelectedIndexChanged);
    }
    }

    private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
    {
    DataSet ds = new DataSet();
    OdbcDataAdapter daSQL;

    try
    {
    string strSQL = "SELECT A.ADVVR_OMSCHRIJVING FROM BVK_VRAGEN_ADVIESBIJVRAAG A, BVK_VRAGEN_REL_ANTWOORDADVIES B, BVK_VRAGEN C, BVK_VRAGEN_ANTWOORDMOGELIJKHEDEN D WHERE A.ADVVR_ID = b.ADVVR_ID AND B.VRG_ID = C.VRG_ID and B.ANTWM_ID = D.ANTWM_ID and C.VRG_CODE = '" + dataGridView1.Rows[intRowNum].Cells[0].Value + "' AND D.ANTWM_OMSCHRIJVING = '" + dataGridView1.Rows[intRowNum].Cells[2].Value + "'";

    OdbcCommand cmd = new OdbcCommand(strSQL, clsGloabalDeclearation.cnSQL);

    //Get the record from the daSQLtabase
    daSQL = new OdbcDataAdapter(strSQL, clsGloabalDeclearation.cnSQL);

    //Fill filtered daSQLta in daSQLtaset
    daSQL.Fill(ds, "BVK_VRAGEN_ADVIESBIJVRAAG");

    if (ds.Tables["BVK_VRAGEN_ADVIESBIJVRAAG"].Rows.Count > 0)
    {
    dataGridView1.Rows[intRowNum].Cells[3].Value = ds.Tables["BVK_VRAGEN_ADVIESBIJVRAAG"].Rows[0][0].ToString();
    dataGridView1.Update();
    }
    }
    catch (Exception ex)
    {
    //If any error occured
    MessageBox.Show(ex.Message.ToString());
    }
    finally
    {
    ds.Dispose();
    }
    }

    Any ideas??

    One more thing, is it possible to lock a column for user changes? If yes then how?

    Regards,

    Kaushal
    Last edited by kashi_rock; Feb 24th, 2010 at 02:48 AM.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width