在维护旧的软件时,有个需求是:当打开窗口时,设置某个TextBox控件自动获取焦点,并且全选里面的内容。平时不怎么用winform开发项目的,所以不是很熟悉。
首先想到的是可在窗口的Load事件中添加对TextBox控件操作;代码如下所示
private void NewPatient_Load(object sender, EventArgs e)
{
//tB_Name:为TextBox名称
tB_Name.Focus();
tB_Name.Select(0, tB_Name.Text.Length);
tB_Name.SelectAll();
}
原理上来说,运行后应该就可以达到想要的效果;但是当运行看到实际的结果后没有像预期的那样,TextBox控件既没有获取到焦点,文本也没有全选中。
这就得采用其他的方式来实现了,记得在WPF中有个事件/方法(Activated:当使用代码激活或用户激活窗体时发生),不知道Winform中有没有;于是乎,就直接选中串口,调出窗口的属性窗口,在事件中发现winform也是存在这个事件的,那就采用这种方法试试咯。
**************************************************************************************************************
首先在属性面板中,添加Activated的事件,如下图
后台代码实现如下:
private void NewNewPatient_Activated(object sender, EventArgs e)
{
//tB_Name:为TextBox名称
tB_Name.Focus();
tB_Name.Select(0, tB_Name.Text.Length);
tB_Name.SelectAll();
}
编译运行程序后,最终实现了想要的结果。
在此做个笔记和分享,大家如果想到其他办法,欢迎评论交流,谢谢。
**************************************************************************************************************