Click here to Skip to main content
15,897,187 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi

I am used a datagrid and add columns through columns collection
now when user enter data in a cell then on cell leave it will check wheather the item concerned with dat id is exist or not

now wat i want it dat a cell in which user write item code is autocomplet
how i make dat autocomplete
Posted

C#
public partial class Form1 : Form
{
    private AutoCompleteStringCollection sc0 = null; // Column 0
    private AutoCompleteStringCollection sc1 = null; // Column 1

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        // Load Data
        sc0 = new AutoCompleteStringCollection() { "00", "000", "00000" };
        sc1 = new AutoCompleteStringCollection() { "11", "111", "11111" };
    }

    private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        if (e.Control is DataGridViewTextBoxEditingControl)
        {
            var tec = (e.Control as DataGridViewTextBoxEditingControl);
            tec.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            tec.AutoCompleteSource = AutoCompleteSource.CustomSource;

            switch (dataGridView1.CurrentCell.ColumnIndex)
            {
                case 0:
                    tec.AutoCompleteCustomSource = sc1;
                    break;
                case 1:
                    tec.AutoCompleteCustomSource = sc1;
                    break;
            }
        }
    }

    private void btnSave_Click(object sender, EventArgs e)
    {
        // Save

        // Not Contains
        string s = "";
        for (int i = 0; i < dataGridView1.RowCount; i++)
        {
            s = dataGridView1[0, i].Value.ToString();
            if (!sc0.Contains(s))
            {
                sc0.Add(s);
            }

            s = dataGridView1[1, i].Value.ToString();
            if (!sc1.Contains(s))
            {
                sc1.Add(s);
            }
        }
    }
}
 
Share this answer
 
use CellValueChanged or CellLeave event of DataGridview to check into the DB..

you can write code like..
add event to datagridview
C#
Datagridview1.CellValueChanged += new DataGridViewCellEventHandler(Datagridview1_CellLeave);

then Write your logic in the method you mentioned in the event..
C#
void Datagridview1_CellLeave(object sender, DataGridViewCellEventArgs e)
       {
           // your logic here

       }
 
Share this answer
 
C++
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
       {
           //if (dataGridView1.CurrentCell.ColumnIndex ==1)
           //{
               if (e.Control is DataGridViewTextBoxEditingControl)
               {
                   DataGridViewTextBoxEditingControl te =
                   (DataGridViewTextBoxEditingControl)e.Control;
                   te.Name = "items";
                   te.AutoCompleteMode = AutoCompleteMode.Suggest;
                   te.AutoCompleteSource = AutoCompleteSource.CustomSource;
                   SqlConnection conn1 = new SqlConnection(gb.autocreateconn());
                   conn1.Open();
                   string comand2 = @"select xitems.it_id from xitems left join  inv1det on inv1det.ln_itemid=xitems.it_id";
                   SqlDataAdapter adatter2 = new SqlDataAdapter(comand2, conn1);
                   DataSet dataset2 = new DataSet();
                   adatter2.Fill(dataset2, "xitems");
                   string[] itemsg = new string[50];
                   int col = dataGridView1.CurrentCell.ColumnIndex;
                   switch(col){
                       case 0:
                           break;
                       case 1:
                   for (int i = 0; i < dataset2.Tables["xitems"].Rows.Count; i++)
                   {
                       itemsg[i] = dataset2.Tables["xitems"].Rows[i][0].ToString();
                       te.AutoCompleteCustomSource.AddRange(new string[] { itemsg[i] });
                   }
                   break;
                       case 3:
                   break;
                       case 4:
                   break;
                       case 5:
                   break;
                       default:
                    break;
                   }
               }

           //}
       }
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900