在项目中的一些录入页面,用户要求当填写完一个数据时根据上下左右键来移动光标,可以不用点击鼠标而输入下一个单元格的数据,从而提高工作效率。根据分析,这个功能可以通过ultraGrid的KeyDown事件来实现。具体实现如下:
// 响应键盘事件
private void ultraGrid1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
switch(e.KeyCode)
{
case Keys.Up:
this.ultraGrid1.PerformAction(UltraGridAction.ExitEditMode, false, false);
this.ultraGrid1.PerformAction(UltraGridAction.AboveCell, false, false);
e.Handled = true;
this.ultraGrid1.PerformAction(UltraGridAction.EnterEditMode, false, false);
break;
case Keys.Down:
this.ultraGrid1.PerformAction(UltraGridAction.ExitEditMode, false, false);
this.ultraGrid1.PerformAction(UltraGridAction.BelowCell, false, false);
e.Handled = true;
this.ultraGrid1.PerformAction(UltraGridAction.EnterEditMode, false, false);
break;
case Keys.Right:
this.ultraGrid1.PerformAction(UltraGridAction.ExitEditMode, false, false);
this.ultraGrid1.PerformAction(UltraGridAction.NextCellByTab, false, false);
e.Handled = true;
this.ultraGrid1.PerformAction(UltraGridAction.EnterEditMode, false, false);
break;
case Keys.Left:
this.ultraGrid1.PerformAction(UltraGridAction.ExitEditMode, false, false);
this.ultraGrid1.PerformAction(UltraGridAction.PrevCellByTab, false, false);
e.Handled = true;
this.ultraGrid1.PerformAction(UltraGridAction.EnterEditMode, false, false);
break;
}
}
//当光标移动到某个单元格时,这个单元格的背景色被改变,从而可以很清晰看出客户想要输入的单元格位置,比较清晰,可以更多的避免用户输入错误的数据。
private void ultraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e)
{
this.ultraGrid1.DisplayLayout.Override.ActiveCellAppearance.BackColor = Color.LightYellow;
}
点击->按键,展示如下的效果:
按下向下的键盘,显示如下:同理,<-键和向上键。