C# WinCE开发,没有触摸屏,所以只能用键盘操作。
liseview控件,选定一列后按下enter按钮,然后弹出一个窗体。
就想完成上述的操作,可是在WinCE开发中liseview控件好像没有键盘事件,起码在窗体设计器里面没有,就是那个闪电图标里面。
请教各位了,到底要如何编写。
后来我查帮助(msdn)发现listview控件里面有一个保护函数OnKeyPress,不过后面写的是(从 Control 继承),因为本人是新手,所以有那位高手能帮助一下。
liseview控件,选定一列后按下enter按钮,然后弹出一个窗体。
就想完成上述的操作,可是在WinCE开发中liseview控件好像没有键盘事件,起码在窗体设计器里面没有,就是那个闪电图标里面。
请教各位了,到底要如何编写。
后来我查帮助(msdn)发现listview控件里面有一个保护函数OnKeyPress,不过后面写的是(从 Control 继承),因为本人是新手,所以有那位高手能帮助一下。
{
protected override void OnKeyPress(KeyPressEventArgs e)
{
// ...
}
}
这个必须继承ListView类吗?继承至一般的form类不行吗?
private string ItemText = "";private void listView1_SelectedIndexChanged(object sender, System.EventArgs e)
{
foreach(ListViewItem lvItem in listView1.Items)
{
if(lvItem.Selected)
{
ItemText = lvItem.Text;
lvItem.Focused = false;
//这句比较关键,没有它listView不能失去焦点
break;
}
}
this.listView1.Enabled = false;
this.Focus();
this.listView1.Enabled = true;
}protected override void OnKeyPress(KeyPressEventArgs e)
{
if(e.KeyChar == (char)13)
{
if(ItemText != "")
{
MessageBox.Show(ItemText);
}
}
base.OnKeyPress (e);
}重要的地方是让listView失去焦点,但在selected_index里不能做到,只能用这种方法,
也期待其他朋友有更好的方法