问题1:在窗口LOAD时密码框获取焦点,用如下代码:
private void LoginDlg_Load(object sender, EventArgs e)
{
this.tbPwd.Focus();
}
结果:不能实现,窗口打开后没有任何控件获取焦点,为什么啊?难道窗口LOAD时不能获取焦点?问题2:在密码框中敲入回车键,启动OK按钮点击事件进行登陆,用如下代码:
private void tbPwd_Enter(object sender, EventArgs e)
{
btnOK_Click(sender,e);
} 结果是:在窗口的任何位置点击鼠标左键或者回车键都启动OK按钮点击事件进行登陆,显然是不合理的,为什么?以上两问题如果要实现正确的应该怎样写?
private void LoginDlg_Load(object sender, EventArgs e)
{
this.tbPwd.Focus();
}
结果:不能实现,窗口打开后没有任何控件获取焦点,为什么啊?难道窗口LOAD时不能获取焦点?问题2:在密码框中敲入回车键,启动OK按钮点击事件进行登陆,用如下代码:
private void tbPwd_Enter(object sender, EventArgs e)
{
btnOK_Click(sender,e);
} 结果是:在窗口的任何位置点击鼠标左键或者回车键都启动OK按钮点击事件进行登陆,显然是不合理的,为什么?以上两问题如果要实现正确的应该怎样写?
解决方案 »
- datagridview的一个问题
- c#调用c dll无法找到入口点的问题(非c++ dll)
- 请问各位,在学校里学习什么语言和技术才能在毕业的时候容易找到工作?(我是06级的)
- 那位朋友知道C#vs2003中用的csc编译器那里可以下载得到,急用,请朋友们帮忙
- 把sql数据库里的数据导出excel格式【】【】【】【】【
- 请教各位用C#编写的简单抓取网页的spider代码
- 请教IssueVision安装问题
- 有数学高手么?进来帮帮忙......
- 部门不允许被删除,谁有比较好的实现方案?
- 请问:托管程序和非托管程序到底有什么区别?
- Gridcontrol 下面红线框的那一列的列宽怎么调整呢。在线等高手
- FileStream Close 异常
一进来没有获得焦点你可以看看是不是pwd控件的tabindex或者它的父控件的tabindex设的比别的控件大了
在pwd控件回车键应该捕获keydown事件里掉btnOK_Click(sender,e);
private void tbPwd_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) btnOK_Click(sender, null);
}
你的思路不正确 首先设Form.KeyPreview=True private void Form1_Activated(object sender, EventArgs e)
{
if (txtPwd.CanFocus) txtPwd.Focus();
} private void txtPwd_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter && (sender as TextBox).Text != "")
btnLogin.PerformClick();
} private void btnLogin_Click(object sender, EventArgs e)
{
MessageBox.Show("login....");
}
一进来没有获得焦点你可以看看是不是pwd控件的tabindex或者它的父控件的tabindex设的比别的控件大了
在pwd控件回车键应该捕获keydown事件里掉btnOK_Click(sender,e);UP
是的,我查看了一下,pwd控件的tabindex的值=4,其他的控件都小于4,我把它改成0,就可以了。请解释一下tabindex值的具体含义?为什么会影响到获取焦点?为什么只是在窗口LOAD时才影响,在其它地方又不影响?例如在如下代码实现中就没有影响,PWD控件能正确获得焦点:private void btnOK_Click(object sender, EventArgs e)
{
if (user.Password != pwd)
{
MessageBox.Show("输入的命码不正确!!!", "提示", MessageBoxButtons.
OK, MessageBoxIcon.Warning);
this.tbPwd.Focus();
}
}
Form1_Activated时窗体还没创建完成,可以在此时设置焦点。
btnOK_Click时,激活了一个新的事件,所以可以设置新的焦点。