我在Microsoft Visual Studio 2010中有一个DataGridView,我希望在其中插入两个charachter,“I”和“O”。但是发射KeyPress后,重新发送的文本不会显示在Cell
中可能是什么问题?
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
switch (treeView1.SelectedNode.Name)
{
case "PanelProperties":
e.Control.KeyPress -= new KeyPressEventHandler(Control_KeyPress);
e.Control.KeyPress += new KeyPressEventHandler(Control_KeyPress);
break;
default:
break;
}
}
private void Control_KeyPress(object sender, KeyPressEventArgs e)
{
int columnIndex = dataGridView1.CurrentCell.ColumnIndex;
switch (columnIndex)
{
case 5:
if (!(e.KeyChar.Equals('i') || e.KeyChar.Equals('I')) && !(e.KeyChar.Equals('o') || e.KeyChar.Equals('O')))
e.Handled = true;
else
{
if (e.KeyChar.Equals('i') || e.KeyChar.Equals('I'))
dataGridView1.CurrentCell.Value = "In";
else
dataGridView1.CurrentCell.Value = "Out";
}
break;
case 6:
case 7:
if (!(e.KeyChar.Equals('n') || e.KeyChar.Equals('N')) && !(e.KeyChar.Equals('y') || e.KeyChar.Equals('Y')))
e.Handled = true;
else
{
if (e.KeyChar.Equals('n') || e.KeyChar.Equals('N'))
dataGridView1.CurrentCell.Value = "No";
else
dataGridView1.CurrentCell.Value = "Yes";
}
break;
}
}
答案 0 :(得分:0)
只需将已编辑的更改提交到datagrid视图。
if (dataGridView1.IsCurrentCellDirty)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
答案 1 :(得分:0)
试试这个在我的示例应用程序中为我工作:
dataGridView1.CurrentCell.Value = "In";
dataGridView1.EndEdit();