当Cell进入编辑状态时,GcMultiRow添加了一个子控件为处理用户的输入请求,这时KeyDown消息将直接发送到子控件,所以GcMultiRow是不能接收到相关的事件。
一般的做法是在EditingControlShowing事件中监听子控件的消息。
代码如下:
- private void Form1_Load(object sender, EventArgs e)
- {
- this.gcMultiRow1.KeyDown += Hold_KeyDown;
- this.gcMultiRow1.EditingControlShowing += gcMultiRow1_EditingControlShowing;
- }
- void gcMultiRow1_EditingControlShowing(object sender, GrapeCity.Win.MultiRow.EditingControlShowingEventArgs e)
- {
- e.Control.KeyDown -= Hold_KeyDown;
- e.Control.KeyDown += Hold_KeyDown;
- }
- void Hold_KeyDown(object sender, KeyEventArgs e)
- {
- //DO somthing
- Console.WriteLine("gcMultiRow1_KeyDown");
- }
复制代码 |