【发布时间】:2011-09-13 19:28:34
【问题描述】:
我想为我的多行文本框实现类似智能感知的功能。智能感知控件以没有控制框的标准形式放置(因此,没有标题或最大化/最小化按钮可见)。
一切正常,但如果显示 intellisense-form 并且用户单击 intellisense 表单,则主表单失去焦点(因此,用户必须单击返回到文本框才能写入)。
我知道ShowWithoutActivation 属性,但它只适用于激活,而不适用于“标准焦点”。
编辑:
我在 http://www.daniweb.com/software-development/csharp/threads/273724 上找到了帮助,但提供的代码不起作用。在“Show()”方法中抛出“Invalid parameter”异常。
【问题讨论】:
-
为什么你不使用控件而不是智能感知表单?
-
因为客户希望智能感知表单可以从主表单溢出。
-
显然您的“智能控制”不是一个控制。很难猜测它到底是一种什么样的动物。如果是 Form 则将其 TopLevel 属性设置为 false 以将其变为控件。
-
@Hans Passant:UserControl 处于状态。表单通过“Show()”方法显示。属性“TopMost”设置为“true”,但与表单焦点无关:(.
-
嗯,当然是。控件没有 TopMost 属性。显然它是一个表单,使用 TopLevel 属性。
标签: winforms focus activation