c#中ShowDialog的问题
有一个窗体,上面的控件是自定义控件,然后使用ShowDialog将窗体显示出来,如何能让焦点放在自定义控件上?ShowDialog显示出窗体后触发什么事件嘛?两位说的和我...
有一个窗体,上面的控件是自定义控件,然后使用ShowDialog将窗体显示出来,如何能让焦点放在自定义控件上?
ShowDialog显示出窗体后触发什么事件嘛?
两位说的和我的情况有些出入。
举例说明吧。
现在有2个窗口,A,B。
A中写了B的ShowDialog方法。
现在要完成的是,在B上,有一个自定义控件C,C中有一个textbox,在A调用B的ShowDialog方法是,显示出来的窗口的焦点在这个textbox上。如何才能让焦点在这个上面,这个是我的问题。
至于窗口间的焦点,可以采用记录父子关系来办到,那个已经实现了,但是控件的焦点还是得不到。
是控件不是窗口
再补充一下:
Form_Load事件我测试过,不能得到焦点,分析原因可能是因为这个是在ShowDialog时调用,这时页面还没有绘出来,所以也就不存在焦点问题,因此得不到焦点。TabIndex的方法我也试过了,由于自定义控件是动态加载的,有多少个不知道,谁是第一个也不知道,而焦点要在第一个的第一个TEXTBOX上面,因此不好设置TabIndex。
还有没有其他方法呢? 展开
ShowDialog显示出窗体后触发什么事件嘛?
两位说的和我的情况有些出入。
举例说明吧。
现在有2个窗口,A,B。
A中写了B的ShowDialog方法。
现在要完成的是,在B上,有一个自定义控件C,C中有一个textbox,在A调用B的ShowDialog方法是,显示出来的窗口的焦点在这个textbox上。如何才能让焦点在这个上面,这个是我的问题。
至于窗口间的焦点,可以采用记录父子关系来办到,那个已经实现了,但是控件的焦点还是得不到。
是控件不是窗口
再补充一下:
Form_Load事件我测试过,不能得到焦点,分析原因可能是因为这个是在ShowDialog时调用,这时页面还没有绘出来,所以也就不存在焦点问题,因此得不到焦点。TabIndex的方法我也试过了,由于自定义控件是动态加载的,有多少个不知道,谁是第一个也不知道,而焦点要在第一个的第一个TEXTBOX上面,因此不好设置TabIndex。
还有没有其他方法呢? 展开
展开全部
触发离开事件,Validate事件等等,
ShowDialog会中断当前线程,并且,焦点移到Dialog上面.所以,当前如果使用
系统的ShowDialog方法,那么其父窗体将不能获取焦点.
-------
有两种方法可以实现,
1:
在B的load事件中将焦点放到C控键上.
2:
为B增加一个构造函数,参数为string,控件名称.
在这个构造函数中,根据参数寻找当前(B)Form中对应的控件,再调用该控件的Focus()方法既可.
ShowDialog会中断当前线程,并且,焦点移到Dialog上面.所以,当前如果使用
系统的ShowDialog方法,那么其父窗体将不能获取焦点.
-------
有两种方法可以实现,
1:
在B的load事件中将焦点放到C控键上.
2:
为B增加一个构造函数,参数为string,控件名称.
在这个构造函数中,根据参数寻找当前(B)Form中对应的控件,再调用该控件的Focus()方法既可.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以设置控件的TabIndex属性,在所有控件中TabIndex最小的就是就是焦点控件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在B窗体的Load事件上写textBox1.Focus();
就哦了
就哦了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
属于第二个窗体的Form_Load事件,用文本框的Focus()获得焦点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2008-12-16
展开全部
Form1 f = new Form1();
f.ShowDialog();
textBox1.Focus();//焦点放到TextBox1上
触发Form_Load
f.ShowDialog();
textBox1.Focus();//焦点放到TextBox1上
触发Form_Load
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询