0

SplitContainer 控件的 MSDN 文档说:

使用 SplitContainer 控件,您可以创建复杂的用户界面;通常,一个面板中的选择决定了另一个面板中显示的对象。

所以,我有一个拆分容器,它水平拆分,具有顶部和底部面板。我想要做的是——当 Panel1(顶部)中的控件获得焦点时,我需要 Panel2(底部)中的控件来获得焦点。然后焦点必须再次回到 Panel1 中的控件。

问题是,Panel2 中的控件在 CanFocus 上返回 false。我知道对于某些类型的控件,这可能会发生,并且控件的每个祖先都必须具有焦点才能接收焦点。我也试过了,但没有用。CanFocus 仍然返回 false。

有没有其他解决方案?有没有人试过这个。我要做的与 Outlook 所做的基本相同。当您在收件箱中选择一条消息时。消息正文显示在底部面板中。

4

2 回答 2

0

您所描述的内容并不模仿 Outlook。如果我在 Outlook 的邮件列表中选择了一封邮件,焦点仍然在邮件列表上。是的,邮件正文确实出现在下方,但焦点没有移动。

不应该有任何东西阻止您更改控件或显示在任一面板中的内容。你不应该转移注意力来实现这一点。

于 2009-08-26T15:09:53.090 回答
0

您真的需要将焦点设置到 Panel2 吗?

我猜你的 Panel2 包含类似于 RichTextBox 对象的东西,为简单起见称为 RTB1。

假设有人在 Panel1 中选择了一些东西。为简单起见,假设您有一个名为 LV1 的 ListView 控件。

然后,在 LV1.SelectedIndexChanged 事件上,读取该事件并将数据填充到 RTB1。

你真的不需要给 Panel2 焦点,除非我缺少一些东西。

于 2009-08-26T15:11:20.933 回答