+ -
当前位置:首页 → 问答吧 → 用户控件无法获取焦点,都来讨论下吧~~~~~~~~~~~~~~~~~~~

用户控件无法获取焦点,都来讨论下吧~~~~~~~~~~~~~~~~~~~

时间:2011-12-13

来源:互联网

新建一个用户控件,里面就是textbox
引用后无法给其焦点。。。。。
C# code

txtDictate.myTextBox.Focus();//失败
txtDictate.Focus();//失败
this.ActiveControl = txtDictate;//(貌似获得焦点:光标在txtDictate内)但不执行myTextBox_GotFocus事件
this.ActiveControl = txtDictate.myTextBox;//(貌似获得焦点:光标在txtDictate内)但不执行myTextBox_GotFocus事件


还有什么办法不????
经过测试,C#默认用户控件为:不可获取焦点的控件。。。。。

我了个去啊。。。。求解。。。

作者: gwf25sz   发布时间: 2011-12-13

userControl1.Controls["textBox1"].Focus();

作者: dalmeeme   发布时间: 2011-12-13

引用 1 楼 dalmeeme 的回复:
userControl1.Controls["textBox1"].Focus();


不好意思,上面漏写了。。。这个也不行,我试过了。

作者: gwf25sz   发布时间: 2011-12-13

引用楼主 gwf25sz 的回复:
▪ 云计算能为企业数据中心带来哪...▪ 云计算能帮助实现绿色IT吗?▪ 云服务模式:SaaS、PaaS和IaaS...▪ 能给出一个BI和私有云相关的案...▪ 实施云计算的挑战?
新建一个用户控件,里面就是textbox
引用后无法给其焦点。。。。。

C# code

txtDictate.myTextBox.Focus();//失败
txtDictate.Focus();//……
应该么啥问题啊
你执行的顺序换换
C# code

txtDictate.Focus();//失败
txtDictate.myTextBox.Focus();//失败
this.ActiveControl = txtDictate;//(貌似获得焦点:光标在txtDictate内)但不执行myTextBox_GotFocus事件
this.ActiveControl = txtDictate.myTextBox

如果还是不行 直接在txtDictate.Focus()的这个方法上下功夫吧 重写下 在这里就把焦点给textbox

作者: yanbuodiao   发布时间: 2011-12-13

引用 2 楼 gwf25sz 的回复:
引用 1 楼 dalmeeme 的回复:
userControl1.Controls["textBox1"].Focus();


不好意思,上面漏写了。。。这个也不行,我试过了。

我测试过行的,为什么楼主会不行?而且确实引发了Enter事件。

作者: dalmeeme   发布时间: 2011-12-13

引用 4 楼 dalmeeme 的回复:
引用 2 楼 gwf25sz 的回复:
引用 1 楼 dalmeeme 的回复:
userControl1.Controls["textBox1"].Focus();


不好意思,上面漏写了。。。这个也不行,我试过了。

我测试过行的,为什么楼主会不行?而且确实引发了Enter事件。


我的结构是这样的:MainForm->Panel->ChildForm->Panel->GroupBox->用户控件
我也不清楚为什么不行。。。。。我敢觉得userControl1.Controls["textBox1"].Focus();
是可以的,但结果却不行。。。。

作者: gwf25sz   发布时间: 2011-12-13

调用 myTextBox 的 Focus()方法

作者: Sandy945   发布时间: 2011-12-13

同时我也看到其他人的相关问题:
比如:
如何让其失去焦点(键盘事件)。
等上面的问题解决后我就要考虑这个问题了。而且,我这已经用钩子屏蔽了Tab等。。。做起来就更难了。。。

作者: gwf25sz   发布时间: 2011-12-13

引用 6 楼 sandy945 的回复:
调用 myTextBox 的 Focus()方法

上面我已经说了,测试失败。。。。

作者: gwf25sz   发布时间: 2011-12-13

在控件里面写个方法

作者: jiangfling   发布时间: 2011-12-13

不是吧,肯定还是在哪里有设置,否则的话Focus()可以设置焦点的
看看这几个可疑设置:
AcceptsTab
TabStop
TabIndex
Cursor
UseWaitCursor
或者在程序里屏蔽了?

作者: athwind   发布时间: 2011-12-13