お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2011-01-09 05:27:55

kawauso001
新しいメンバ
登録日: 2010-12-02

【MonoDevelopで】複数窓の表示にて【C#】

MonoDevelopでC#を使ってアプリケーションの開発をしているところ
思うような実装ができずに行き詰まっています。

メインウィンドウ上で右クリックを押した際に表示されるポップアップメニューの任意の項目を選択した後、
新しいウィンドウが表示されるよう実装したところ、メインウィンドウの方にフォーカスがいってしまい、新規
ウィンドウの方が操作できない状態になってしまっている。
ポップアップメニューの項目MenuItemのアクションは次のように実装しています。
--------------------------------------------------------------------------------------------------
        Menu mbox = new Menu();
        MenuItem setTimerItem = new MenuItem("タイマーをセットする");
        MenuItem line = new MenuItem();
        MenuItem propa = new MenuItem("ヘルプ");
       
        // メニューアイテムにたいするアクション
        setTimerItem.Activated += delegate(object sender, EventArgs e){
            Console.WriteLine("test is pushed");
            timeset newWindow = new timeset();
            Console.WriteLine(this.Child.Name);
           
            newWindow.Show();
        };
---------------------------------------------------------------------------------------------------
timesetクラスが新しいウィンドウとなる部分です。"タイマーをセット"するを選択した際にメインウィンドウにフォー
カスがいったままでタイマーのセットを入力できない状態に陥っている有様です。

ちなみにSystem.Windows.FormsのほうではなくGtkのほうでウィンドウのGUIの実装を試みています。

状況説明が不十分かもしれませんが、どなたかご教授の方をお願いしたいと思います。

オフライン

 

#2 2011-01-09 06:11:38

kawauso001
新しいメンバ
登録日: 2010-12-02

Re: 【MonoDevelopで】複数窓の表示にて【C#】

自己解決しました。

Modal設定がされていなかったのが原因でした。

MainWindowとタイマーのセットをするウィンドウtimesetの両者ともModalにすることで
問題解決しました。

最初の設定はMainWindowのみModalとなっていたため、MainWindowが閉じなければtimesetに
移行できなかったという状況に陥ってしまったのだと分かりました。

オフライン

 

Board footer

Powered by FluxBB