如何为DataGridTextBoxColumn编写keypress事件

时间:2013-12-10 07:36:12

标签: c# winforms

我处理的代码低于给定的方案

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;。例如,对于只有鼠标事件,编辑功能应该调用。

请建议。

1 个答案:

答案 0 :(得分:0)

点击您的网格。按F4一个窗口就会出现属性。有4-5个按钮有A-Z带箭头标记等。在那个点击第4个是事件那里双击按键事件然后写你的代码。

然后在keypress或keydown或keyup事件中使用以下条件

 if (Keys.Tab != e.KeyCode)//with && add other condition for your other keys