
Ubuntu日本語フォーラム

ログインしていません。
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の実装を試みています。
状況説明が不十分かもしれませんが、どなたかご教授の方をお願いしたいと思います。
オフライン
自己解決しました。
Modal設定がされていなかったのが原因でした。
MainWindowとタイマーのセットをするウィンドウtimesetの両者ともModalにすることで
問題解決しました。
最初の設定はMainWindowのみModalとなっていたため、MainWindowが閉じなければtimesetに
移行できなかったという状況に陥ってしまったのだと分かりました。
オフライン