public override void InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle)
        {
            base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle);

            DataGridViewComboBoxExEditingControl clt = DataGridView.EditingControl as DataGridViewComboBoxExEditingControl;

            DataGridViewComboBoxExColumn col = (DataGridViewComboBoxExColumn)OwningColumn;

            clt.Items.Clear();
            clt.Items.AddRange(col.DataSource);//不能用DataSource,因为绑定数据之后就不行对Items执行clear和add事件;另外,绑定数据后会默认选择第一行,如果需要输入多个字符,这样会产生全选,覆盖的输入效果。
            clt.AutoCompleteMode = AutoCompleteMode.Suggest;
            //clt.FormattingEnabled = true;
            clt.Text = Convert.ToString(this.Value);
        }
Beispiel #2
0
        public Form1()
        {
            InitializeComponent();
            //TreeViewColumn cl1 = new TreeViewColumn();
            //cl1.HeaderText = "树";
            //dataGridView1.Columns.Add(cl1);
            //DataGridViewComboBoxExColumn cl2 = new DataGridViewComboBoxExColumn();
            //cl2.HeaderText = "下拉框";
            //dataGridView1.Columns.Add(cl2);

            DataTable table = new DataTable();

            table.Columns.Add("AAA", typeof(DateTime));
            table.Columns.Add("BBB", typeof(Decimal));
            table.Columns.Add("CCC", typeof(String));

            string[] tb2 = { "北京", "南京", "111" };
            DataGridViewComboBoxExColumn col3 = new DataGridViewComboBoxExColumn();

            col3.DataSource = tb2;
            col3.Width      = 200;
            dataGridView1.Columns.Add(col3);
            for (int i = 0; i < 3; i++)
            {
                DataRow row = table.NewRow();

                row["AAA"] = DateTime.Now;
                row["BBB"] = 123456789.1234567;
                row["CCC"] = 2;

                table.Rows.Add(row);
            }
            table.AcceptChanges();

            CalendarColumn col4 = new CalendarColumn();

            dataGridView1.Columns.Add(col4);
            this.dataGridView1.AutoGenerateColumns = false;
            this.dataGridView1.DataSource          = table;
        }