Tag: datagridviewcombobox

使用DataGridView Combobox的SelectionChangeCommitted Event获取新值或索引

我使用SelectionChangeCommitted在combobox选择的索引发生变化时捕获事件,但我无法获得它的新值或索引。 private void ruleList_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (e.Control is ComboBox) { ComboBox comboBox = e.Control as ComboBox; comboBox.SelectionChangeCommitted += ruleListColumnComboSelectionChanged; } } private void ruleListColumnComboSelectionChanged(object sender, EventArgs e) { string value = ruleList.CurrentCell.Value.ToString(); // just return the old value before the change }

DataGridViewCombobox列中的AutoComplete有什么奇怪的行为?

我正在使用( EditingControlShowing )事件在DataGridViewComboBox列中启用自动完成。 private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (e.Control is DataGridViewComboBoxEditingControl) { ComboBox combo = (ComboBox)e.Control; ((ComboBox)e.Control).DropDownStyle = ComboBoxStyle.DropDown; ((ComboBox)e.Control).AutoCompleteSource = AutoCompleteSource.ListItems; ((ComboBox)e.Control).AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; } } 但它有一个奇怪的行为,当我键入一些字符然后我离开单元格(Tab或右键),值没有改变。 但如果我重复一遍,价值就会改变。 从这里 ,您可以下载解释问题的源代码和(EXE)video。 你能帮助我让它正常工作吗?

在绑定的DataGridView中将DataGridViewColumn更改为DataGridViewComboBoxColumn

我有一个绑定到DataTable的DataGridView,我使用SQLiteDataAdapter来更新一个SQLite数据库。 我正在尝试将其中一个列设为DataGridViewComboBoxColumn,但尽管我可以在其上放置项并更改其单元格值,但我无法通过DataAdapter更新它。 加载DataGridView后我正在这样做: DataGridViewComboBoxColumn cbCol = new DataGridViewComboBoxColumn(); dataGridView1.Columns.Insert(2, cbCol); dataGridView1.Columns[2].HeaderText = dataGridView1.Columns[3].HeaderText; dataGridView1.Columns[3].Visible = false; string[] cbList = new[] {“item1″,”item2”}; foreach (string str in cbList) { cbCol.Items.Add(str); } for (int i = 0 ; i<= dataGridView1.Rows.Count – 1; i++) { dataGridView1.Rows[i].Cells[2].Value = dataGridView1.Rows[i].Cells[3].Value; } 问题是ComboBoxColumn没有绑定到DataTable,我必须在运行DataAdapter.Update之前检查更改并修改隐藏列。 有什么方法可以避免这种情况吗? 完美的场景将是这样的: private void dataGridView1_ColumnAdded(object sender, DataGridViewColumnEventArgs e) { […]

DataGridViewComboBoxColumn:限制MaxDropDownItems

我想知道如何限制DataGridViewComboBoxColumn显示的项目数。 在简单的ComboBox我们可以这样做: comboBox1.IntegralHeight = false; //this is necessary to make it work!!! comboBox1.MaxDropDownItems = 3; 但是如何在DGV的comboBox中做同样的DGV ? 创建ComboBoxColumn ,没有IntegralHeight属性。

如何根据Combobox的值更改DataGridView单元格颜色?

我有一个datagridview如下: 我想要: 当表单加载时,如果Gender列的值为Male,则列Name的相应颜色单元格将为White 如果更改列的Gender :男性→女性,列Name颜色单元格将为DarkGray,否则如果更改列的Gender :女性→男性,列Name颜色单元格将为白色 我试了但是我无法做到: private void dataGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e) { DataGridView dgv = sender as DataGridView; DataGridViewCell cell = dgv.CurrentCell; if (dgv.Rows[cell.RowIndex].Cells[“Gender”].Value.ToString().Trim() == “Male”) { // Male dgv.Rows[cell.RowIndex].DefaultCellStyle.BackColor = Color.White; } else { // Female dgv.Rows[cell.RowIndex].DefaultCellStyle.BackColor = Color.DarkGray; } } 要么: private void dataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { DataGridView dgv = […]

初始化网格时,同一DataGridView列中的控件不会呈现

好坏 我在DataGridView列中托管不同的控件。 当我同时添加控件时,我初始化网格控件显示为文本框(BAD)。 如果我在DataGridView初始化后添加控件,则控件正确呈现(GOOD)。 public Form1() { InitializeComponent(); ControlsInGridViewColumn(); //<- renders controls as textboxes } private void button1_Click(object sender, EventArgs e) { ControlsInGridViewColumn(); //<- does correctly render controls } private void ControlsInGridViewColumn() { DataTable dt = new DataTable(); dt.Columns.Add("name"); for (int j = 0; j < 10; j++) { dt.Rows.Add(""); } this.dataGridView1.DataSource = dt; this.dataGridView1.Columns[0].Width […]

DataGridView设置列单元格Combobox

我在Datagridview中有这样的表: Name Money ————- Hi 100 //here Combobox with member {10,30,80,100} to choose Ki 30 //here Combobox with member {10,30,80,100} to choose 我想从combobox中更改列“Money”值 我试过这个,但不知道进一步: DataTable dt = new DataTable(); dt.Columns.Add(“Name”, typeof(String)); dt.Columns.Add(“Money”, typeof(String)); dt.Rows.Add(new object[] { “Hi”, 100}); dt.Rows.Add(new object[] { “Ki”, 30}); DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn(); var list11 = new List() { “10”, […]

DataGridViewComboBoxColumn名称/值如何?

我认为这很简单,就像在Access中一样。 用户需要将数据表中一列的值设置为1或2。 我想呈现一个combobox,显示“ONE”,“TWO”并在场景后面设置1或2,就像我在Access-Forms中做过很多次一样。 另一方面,如果显示该表,则它不应显示1或2,而是显示ComboBox中的相应字符串。 我怎样才能让这个简单的任务工作?

DataGridViewComboBoxCell绑定 – “值无效”

我正在尝试将DataGridView中的单独ComboBox单元绑定到自定义类,并继续收到错误 DataGridViewComboBoxCell值无效 我目前正在从我所拥有的词典中将单元格的数据源分配给IList 。 但是,在设置数据源时,未设置ComboBoxCell的索引,因此选择了无效值。 我试图弄清楚如何让它选择一个真正的值,例如列表中的第0项,它已被删除此错误,或找到解决问题的另一种方法。 有人有什么建议吗?