WnGrid 在可编辑状态下直接注册 WnGrid 的双击事件是无法触发的,这时需要通过以下方式注册。
方法一: 注册指定列的编辑控件的双击事件,代码如下:
wnGrid.Columns["BatchNO"].RealColumnEdit.DoubleClick += wnGrid_GridDoubleClick;
注:此方法有问题,我为 BatchNO 注册了双击事件后,其它列如果编辑器类型和 BatchNO 的一样,则同样会触发双击事件,因为其共用了同一个 RealColumnEdit,所以不建议使用此方法。 方法二: 为 WnGrid 注册 ShownEditor 事件,事件方法中继续为编辑器注册双击事件,代码如下:
private void WnFormMain_AfterAssemble(object sender, CancelEventArgs e)
{
wnGridDetail.GridView.ShownEditor += wnGridDetailGridView_ShownEditor;
}
/// <summary>
/// 响应wnGridDetail的ShownEditor事件,目的是为了在Grid处于可编辑状态下实现双击功能
/// </summary>
private void wnGridDetailGridView_ShownEditor(object sender, EventArgs e)
{
//为GridView在可编辑状态下注册双击事件
(sender as GridView).ActiveEditor.DoubleClick += wnGridDetailActiveEditor_DoubleClick;
}
/// <summary>
/// 响应wnGridDetail中ActiveEditor的DoubleClick事件
/// </summary>
private void wnGridDetailActiveEditor_DoubleClick(object sender, EventArgs e)
{
/* 获取当前行索引 */
int row = wnGridDetail.GridView.FocusedRowHandle;
/* 其它操作 */
}