我有一个可以处理客户数据库中搜索功能的WinForm。它包含以下控件:
我接下来想要接受的是:
我意识到这是一个有点大问题,所以如果你知道答案,请不要犹豫,只回答一个子弹标记。
编辑:我已经解决了上面要求1和3的实现,但我仍在寻找第二个问题的答案。为了澄清,当启动搜索时(意味着我已经按下键盘上的输入或鼠标的搜索按钮)我希望焦点转移到DataGridView中的第一行。答案 0 :(得分:3)
当你获得textBox的文本更改事件时,将AcceptButton设置为“Search”:
private void textBox1_TextChanged(object sender, EventArgs e)
{
this.AcceptButton = SearchButton;
}
这里可能需要更多代码,检查字符串的长度等。
然后,一旦完成搜索并填写DataGridView,您就可以将AcceptButton设置为“OK”。
private void dataGridView1_DataMemberChanged(object sender, EventArgs e)
{
this.AcceptButton = OKButton;
}
虽然您可能不想使用此活动。
“取消”始终是CancelButton。
编辑:对于第2部分,您需要以下代码:
private void SearchButton_Click(object sender, EventArgs e)
{
dataGridView1.Focus();
}
一旦按下搜索按钮,这将使其处于活动状态,但您可能希望在填充DataGridView时执行此操作 - 以防搜索未返回任何结果。
答案 1 :(得分:1)
设置处理程序以跟踪特定控件的Control.Enter
事件。当达到输入时,尝试:
this.AcceptButton = ControlThatShouldBeAcceptButton;
答案 2 :(得分:1)
private void WhateverControl_Enter(...)
{
this.AcceptButton = myButton;
}
答案 3 :(得分:1)
您应该为DataGridViewBindingCompleteEventHandler实现一个事件侦听器。在那种情况下,您可以添加以下代码:
{
if(grid.Rows.Count > 0)
{
grid.ClearSelection();
grid.Rows[0].Selected = true;
}
grid.Focus();
}