0

SplitContainer コントロールの MSDN ドキュメントには、次のように記載されています。

SplitContainer コントロールを使用すると、複雑なユーザー インターフェイスを作成できます。多くの場合、1 つのパネルでの選択によって、他のパネルに表示されるオブジェクトが決まります。

そのため、上部と下部のパネルを持つ水平に分割された 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 には、簡単にするために RTB1 と呼ばれる RichTextBox オブジェクトのようなものが含まれていると思います。

誰かが Panel1 で何かを選択したとします。簡単にするために、LV1 という ListView コントロールがあるとします。

次に、LV1.SelectedIndexChanged イベントで、そのイベントを読み取り、データを RTB1 に入力します。

何か欠けているものがない限り、Panel2 にフォーカスを当てる必要はありません。

于 2009-08-26T15:11:20.933 に答える