有没有办法删除数据网格视图上数据绑定组合框中的选择行(突出显示)?
Is there a way to remove the selection line(highlighted) in a databound combox on a datagridview?
我在使用数据绑定 datagridviewcomboboxcell 时遇到问题
我想删除出现在数据绑定组合框单元格上的蓝色 select离子线。
我注意到如果 comboboxcell 没有数据绑定但有项目集合,则不会出现蓝线。但是数据绑定组合框确实有它。
您会在第一张图片中看到没有蓝色 selection 线但是在下一张图片(数据绑定组合框单元格)中有...
我需要把这条 selection 线拿走,这样当数据绑定的 comboboxcell 只有一行数据时,用户可以只通过键盘输入就可以创建一个 selection。
我最初尝试添加一个 keyDown 事件来设置确实更改了值的 Items[index],但是,当我离开单元格时,它会显示模型名称和命名空间。然后,当返回到单元格时,它会显示该值。
我使用了以下代码来做到这一点:
我在组合框中添加了一个按键事件,这里是按键事件
private void dataGridView_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (dataGridView1.Columns[dataGridView1.CurrentCell.ColumnIndex].CellType.Name == "DataGridViewComboBoxCell" && dataGridView1.CurrentCell.ReadOnly == false)
{
DataGridViewRow row = dataGridView1.CurrentRow;
try
{
if ((row.Cells[dataGridView1.CurrentCell.ColumnIndex] as DataGridViewComboBoxCell).Items.Count == 1)
{
(dataGridView1.CurrentRow.Cells[dataGridView1.CurrentCell.ColumnIndex] as DataGridViewComboBoxCell).Value = taxcodes[0];
(dataGridView1.CurrentRow.Cells[dataGridView1.CurrentCell.ColumnIndex] as DataGridViewComboBoxCell).DisplayMember = "FullDescription";
(dataGridView1.CurrentRow.Cells[dataGridView1.CurrentCell.ColumnIndex] as DataGridViewComboBoxCell).ValueMember = "TaxID";
}
}
catch
{
}
}
}
现在我已经尝试更改组合框的设置值,但没有成功,我正在寻找下一个可能的解决方案,我可能会开始工作。
如果我可以让 Combobox 在最初选择时没有 selection 行,那么一旦该行移动到列表中的唯一项目,它就会 select 提供能力到 select 作为价值。
注意:包含多个项目的数据绑定组合框单元格效果很好
注意:定义了项目的非数据绑定组合框单元格运行良好,但是我需要显示成员和值成员
这个查询的理想结果将使我能够 select 当组合框只有一个项目时,数据绑定组合框项目(使用 ENTER 键)。
最后注意:当我使用鼠标在数据绑定组合框单元格上使用 1 项创建 selection 时,它工作得很好。
感谢大家的帮助
所以在咨询了朋友后,我设法重写了.ToString()方法
public override string ToString()
{
return FullDescription;
}
在这种情况下这对我有用,Keydown 路线是正确的路线。
我在使用数据绑定 datagridviewcomboboxcell 时遇到问题
我想删除出现在数据绑定组合框单元格上的蓝色 select离子线。
我注意到如果 comboboxcell 没有数据绑定但有项目集合,则不会出现蓝线。但是数据绑定组合框确实有它。
您会在第一张图片中看到没有蓝色 selection 线但是在下一张图片(数据绑定组合框单元格)中有...
我需要把这条 selection 线拿走,这样当数据绑定的 comboboxcell 只有一行数据时,用户可以只通过键盘输入就可以创建一个 selection。
我最初尝试添加一个 keyDown 事件来设置确实更改了值的 Items[index],但是,当我离开单元格时,它会显示模型名称和命名空间。然后,当返回到单元格时,它会显示该值。
我使用了以下代码来做到这一点: 我在组合框中添加了一个按键事件,这里是按键事件
private void dataGridView_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (dataGridView1.Columns[dataGridView1.CurrentCell.ColumnIndex].CellType.Name == "DataGridViewComboBoxCell" && dataGridView1.CurrentCell.ReadOnly == false)
{
DataGridViewRow row = dataGridView1.CurrentRow;
try
{
if ((row.Cells[dataGridView1.CurrentCell.ColumnIndex] as DataGridViewComboBoxCell).Items.Count == 1)
{
(dataGridView1.CurrentRow.Cells[dataGridView1.CurrentCell.ColumnIndex] as DataGridViewComboBoxCell).Value = taxcodes[0];
(dataGridView1.CurrentRow.Cells[dataGridView1.CurrentCell.ColumnIndex] as DataGridViewComboBoxCell).DisplayMember = "FullDescription";
(dataGridView1.CurrentRow.Cells[dataGridView1.CurrentCell.ColumnIndex] as DataGridViewComboBoxCell).ValueMember = "TaxID";
}
}
catch
{
}
}
}
现在我已经尝试更改组合框的设置值,但没有成功,我正在寻找下一个可能的解决方案,我可能会开始工作。
如果我可以让 Combobox 在最初选择时没有 selection 行,那么一旦该行移动到列表中的唯一项目,它就会 select 提供能力到 select 作为价值。
注意:包含多个项目的数据绑定组合框单元格效果很好
注意:定义了项目的非数据绑定组合框单元格运行良好,但是我需要显示成员和值成员
这个查询的理想结果将使我能够 select 当组合框只有一个项目时,数据绑定组合框项目(使用 ENTER 键)。
最后注意:当我使用鼠标在数据绑定组合框单元格上使用 1 项创建 selection 时,它工作得很好。
感谢大家的帮助
所以在咨询了朋友后,我设法重写了.ToString()方法
public override string ToString()
{
return FullDescription;
}
在这种情况下这对我有用,Keydown 路线是正确的路线。