我处理的代码低于给定的方案
public class myGrid : System.Windows.Forms.DataGrid
{
......
......
}
public class cboDataGridBitCheckbox : System.Windows.Forms.DataGridTextBoxColumn
{
private static int count = 0;
private Int16 mi_flagbitvalue=0;
public cboDataGridBitCheckbox() : base ()
{
count ++;
}
protected override void Edit(CurrencyManager source, int rowNum, Rectangle bounds, bool readOnly, string instantText, bool cellIsVisible)
{
}
}
这些控件在形式示例ucCust中使用。
public class ucRegCustomers : myGrid
{
...
System.Collections.Hashtable lst = new System.Collections.Hashtable();
cboDataGridBitCheckbox bCheckbox =
new cboDataGridBitCheckbox();
bCheckbox.FlagBitValue = 2;
bCheckbox.HeaderText = "Mejlavisera";
lst.Add("flag",bCheckbox);
ucRegGrid.CreateColumnStyles(lst);
}
所以在这里使用ucRegGrid.CreateColumnStyles(lst)
函数我们正在为标志列创建复选框控件。
问题:只要在CurrentCellChanged
中触发myGrid
事件
cboDataGridBitCheckbox
编辑(" protected override void Edit")函数被调用
但我想限制编辑功能,当键盘按下"标签,按下导航箭头键时#34;。例如,对于只有鼠标事件,编辑功能应该调用。
请建议。
答案 0 :(得分:0)
点击您的网格。按F4一个窗口就会出现属性。有4-5个按钮有A-Z带箭头标记等。在那个点击第4个是事件那里双击按键事件然后写你的代码。
然后在keypress或keydown或keyup事件中使用以下条件
if (Keys.Tab != e.KeyCode)//with && add other condition for your other keys