C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 複数Formで、一回のクリックでコントロールを操作する方法


(過去ログ 80 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■47268 / inTopicNo.1)  複数Formで、一回のクリックでコントロールを操作する方法
  
□投稿者/ わいじー (1回)-(2010/02/23(Tue) 13:08:06)

分類:[.NET 全般] 

初めて質問されて頂きます。宜しくお願いいたします。

複数のFormを同時に表示するアプリケーションの操作について困っています。
例えばFormAとFormBがあったとします。
FormA にはmenuStriptのコントロールだけ、FormBにはボタン等いくつかのコントロールが
あったとします。
FormBにフォーカスしていた場合、FormAのmenuStripのアイテムのどれかをクリックしても
フォーカスがFormAに移るだけです。このタイミングでmenuStripのアイテムがクリックさ
れた動作(例えば、メニューアイテムであればメニューを開く)までをしたいと思いますが
うまくいきません。

開発環境は以下になります。
PC:Windows XP
言語:C#
開発環境:Visual Studio 2005

試しに、menuStrip_ItemClickedイベントで強引にメニューを開いたりしてみましたが、
どうも一度開いてもまた閉じているようです。
以下は、その時のサンプルソースですが、このようなベタな方法ではなくコントロール
の種類に依存しないもっとスマートな方法があるかと思っています。

private bool bIsCliking = false;  // 再帰呼び出しを防ぐためのフラグ
private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    if ( !bIsCliking )
    {
        bIsCliking = true;
        ((ToolStripMenuItem)(e.ClickedItem)).ShowDropDown();
    }
    bIsCliking = false;
}

また、マウスカーソルがそのFormに来たら強制的にフォーカスされる方法がありますが、
これはFormの上に表示したメッセージダイアログが隠れたりするのでやりたくありません。

お世話様ですが、どなたかよい方法ご存知の方いらっしゃいましたらアドバイスをお願いい
たします。

引用返信 編集キー/
■47271 / inTopicNo.2)  Re[1]: 複数Formで、一回のクリックでコントロールを操作する方法
□投稿者/ れい (883回)-(2010/02/23(Tue) 16:03:12)
こちらで。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=39021&forum=7
引用返信 編集キー/
■47276 / inTopicNo.3)  Re[2]: 複数Formで、一回のクリックでコントロールを操作する方法
□投稿者/ わいじー (3回)-(2010/02/23(Tue) 17:43:18)
No47271 (れい さん) に返信
> こちらで。
> http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=39021&forum=7

ご返信ありがとうございました。
この問題は過去にも議論されていたのですね。失礼いたしました。

以下のところなども参考にして力技ではありますが解決しました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=37772&forum=7
どうもありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -