Autocomplete 具有多列的自动完成文本框

Autocomplete 具有多列的自动完成文本框,autocomplete,Autocomplete,我为GridView创建了自动完成文本框。 我从数据库中的两列中选择了值,一列是Kontonummer,另一列是Navn,见图1。现在如果我从文本框中选择value,这两个值都来自GridView单元格Konto中的Kontonummer和Navn列,请参见图片2,但我只需要Kontonummer列的值就可以进入GridView单元格Konto,请参见图片3。 你能帮我吗 请参阅所附图片 我的颂歌是: private void dgvAddKontoNr_EditingControlShowin

我为GridView创建了自动完成文本框。 我从数据库中的两列中选择了值,一列是Kontonummer,另一列是Navn,见图1。现在如果我从文本框中选择value,这两个值都来自GridView单元格Konto中的Kontonummer和Navn列,请参见图片2,但我只需要Kontonummer列的值就可以进入GridView单元格Konto,请参见图片3。 你能帮我吗

请参阅所附图片

我的颂歌是:

private void dgvAddKontoNr_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        try
        {                
            string headerText = dgvAddKontoNr.Columns["Konto"].HeaderText;

            if (dgvAddKontoNr.CurrentCell.ColumnIndex == 3)
            {
                if (headerText.Equals("Konto"))
                {
                    if (e.Control is TextBox)
                    {
                        tb = e.Control as TextBox;
                        if (tb != null)
                        {
                            tb.AutoCompleteMode = AutoCompleteMode.Suggest;
                            tb.AutoCompleteSource = AutoCompleteSource.CustomSource;
                            AutoCompleteStringCollection coll = new AutoCompleteStringCollection();
                            tb.AutoCompleteCustomSource = coll;
                            con.Open();
                            SqlDataAdapter da = new SqlDataAdapter("SELECT CAST(Kontonummer AS nvarchar (255)) + ' - ' + Navn AS Kontonummer FROM Kontoplan WHERE LockKonto = 'True' AND KlientId = (SELECT Id FROM Klient WHERE Navn = @Navn)", con);
                            da.SelectCommand.Parameters.AddWithValue("@Navn", bogf.cmbKlient.Text);
                            DataTable dt = new DataTable();
                            da.Fill(dt);

                            for (int i = 0; i < dt.Rows.Count; i++)
                            {
                                string konto = dt.Rows[i]["Kontonummer"].ToString();
                                //string navn = dt.Rows[i]["Navn"].ToString();
                                coll.Add(konto);
                                //coll.Add(navn);
                            }
                            con.Close();
                        }
                        tb.MinimumSize = new Size(345, 25);
                        tb.BorderStyle = BorderStyle.Fixed3D;
                    }                        
                }

                else
                {
                    TextBox tb = e.Control as TextBox;

                    if (tb != null)
                    {
                        tb.AutoCompleteMode = AutoCompleteMode.None;
                    }
                }
            }    
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }