ste*_*ler 7 c# datagridview winforms
我有DataGridViewComboBoxCell和DataTable.表I中的数据使用DataSource与DataGridViewComboBoxCell绑定,并设置ValueMember和DisplayMember.
private void Form1_Load(object sender, EventArgs e)
{
DataGridViewComboBoxCell comboBoxCell = new DataGridViewComboBoxCell();
dataGridView1.Rows[0].Cells[0] = comboBoxCell;
comboBoxCell.DataSource = dataTable;
comboBoxCell.ValueMember = "ID";
comboBoxCell.DisplayMember = "Item";
}
Run Code Online (Sandbox Code Playgroud)
如何在表单加载时以编程方式设置单元格中的值?在简单的ComboBox中,我知道一个属性SelectedIndex.我试过comboBoxCell.Value = ...; 但它给了一个例外.并尝试过
private void dataGridView1_CellFormatting(object sender,
DataGridViewCellFormattingEventArgs e)
{
e.Value = 1;
}
Run Code Online (Sandbox Code Playgroud)
它在单元格中设置了一个新值,但我需要选择一个值.
表单已加载,我有空单元格.

还有ComboBox中的一些数据.

当我把这个代码放在dataGridView1.Rows[0].Cells["ComboColumn"].Value = "1";comboBoxCell.DisplayMember = ...之后(见上文)时,它运行正常.
ID列中的值"1"对应于Items列中的值"Second".因此,我得到了正确的结果.

抱歉我的英文和我的新手代码:)
Dav*_*all 16
不是向网格添加单元格而是添加DataGridViewComboBox列.
DataGridViewComboBoxColumn c = new DataGridViewComboBoxColumn();
c.Name = "ComboColumn";
c.DataSource = dataTable;
c.ValueMember = "ID";
c.DisplayMember = "Item";
dataGridView1.Columns.Add(c);
Run Code Online (Sandbox Code Playgroud)
要选择特定值,请设置给定单元格的Value属性.
dataGridView1.Rows[rowIndexYouWant].Cells["ComboColumn"].Value = 1;
Run Code Online (Sandbox Code Playgroud)
请注意,此处的类型很重要!在评论中你说你得到了System.FormatException.这可能是由于将错误的类型设置为值而引起的.
当您将值设置为1时,您将分配一个int - 如果由于某种原因,您在ID列中有字符串,您将获得System.FormatException您所看到的异常.
如果类型不同,则需要更新DataTable定义或将值设置为字符串:
dataGridView1.Rows[rowIndexYouWant].Cells["ComboColumn"].Value = "1";
Run Code Online (Sandbox Code Playgroud)DataGridView在设置DataSource时,通常最简单的方法是使用它.在这种情况下,您可以使用DataPropertyName属性将ComboBoxColumn绑定到网格的DataSource.
c.DataPropertyName = "GridDataSourceColumnName";
Run Code Online (Sandbox Code Playgroud)
这允许从网格数据源获取列值,并允许更改列以直接更改该数据源.
最后,不要在此处使用CellFormatting事件 - 此事件不适用于此类用途.通常最好在DataBindingComplete事件中执行此类工作(如果您只需要执行一次),或者在需要DefaultValues或RowValidating之类的某些事件中执行此类工作.
通过使用CellFormatting,您可能无法手动编辑组合框.
| 归档时间: |
|
| 查看次数: |
32241 次 |
| 最近记录: |