- - PR -
フォーカスの移動
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-01-01 13:55
Form2のボタンクリックでForm1のテキストボックスにフォーカスを移そうとしています。けれどもForm1に貼り付けたtextBox1にForm2からアクセスできません。
Form2も隠さないで実現したいのでHideメソッドも使えません。 コントロールもインスタンスを取得できるのでしょうか。もしできるなら、どのタイミングで取得できるのでしょうか。 | ||||
|
投稿日時: 2006-01-01 16:14
Form1 に公開されたメソッドを設けます。
その Form1 内のメソッド内でフォーカスをセットするようにすれば良いでしょう。 単純に書けばこんな感じです。
本来こういう場合はオーナーフォームを使って、 "フォーカスを移す" という概念を失くすべきだと思います。 # というか、いもさんの今まで立てたスレって "全部同じ問題" ですよ。 # アクセス修飾子、カプセル化などを理解されていれば躓かない問題です。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-01-01 17:27
じゃんぬねっとさん、ありがとうございます。
よく考えてみると、Form1クラスの外部からコントロールを自由に操作できるのであれば、メッセージのやり取りにはなりませんね。私はまだオブジェクト指向の考え方が分かっていませんでした。でも、じゃんぬねっとさんの説明で少し分かってきたような気がします。 | ||||
|
投稿日時: 2006-01-01 18:09
感付かれたようですね。(^^)
今まで、値を渡したり値を取得したりする際に、 クラス内部の情報に対して "直接" やりとりしていませんでしたよね? そのクラスから自発的に何かをしてもらうスタンスで良いです。 基本的に Form は、公開部分が少なくなる傾向にあります。 GUI に関するものを外部からどうこうする、ということが少ないからです。 どういう経緯で、別の Form のフォーカスに関与しなければならなくなったのかは存じませんが、 一度、仕様の再検討も視野に入れてください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1