mono Gtk# を使用して単純なフォーム アプリケーションを作成しようとしていますが、Gtk.Dialog から継承するダイアログ フォームを作成する最初の段階で既に立ち往生しています。基本情報を収集し、これらの情報をオブジェクトとしてメイン ウィンドウに返すか、何らかのイベントをメイン ウィンドウにトリガーするためのダイアログ フォーム。この場合、データを TreeView コントロールにバインドします (これは別の話です)。これらは私がこれまでに試したことです。
ダイアログコード
public partial class MyDialog : Gtk.Dialog
{
public MyDialog ()
{
this.Build ();
}
protected void OnButtonOkClicked (object sender, EventArgs e)
{
int portNumber = 0;
iint.TryParse (spnPort.Text, out portNumber);
var myObj = new MyObj ();
myObj.Username = txtUsername.Text;
myObj.Password = txtPassport.Text;
// did not work as ParentWindow is a Gdk.Window
//(this.ParentWindow as MainWindow).AddObj(myObj);
//Also did not work because there is no response related method
//or property in the Dialog please read below code block this will make more sense
//this.OnResponse(myObj);
}
}
ダイアログを呼び出す MainWindow コード
protected void OnAddActionActivated (object sender, EventArgs e)
{
MyDialog s = new MyDialog();
s.Run();
s.Response += HandleResponse;
}
void HandleResponse (object o, ResponseArgs args)
{
//as this event has args.Args and args.RetVal I thought one would do what I wanted
//maybe I am using them all wrong
}
Gdk.Windowとは何か、Gtkの制御下で何をしているのかを説明できる人がいれば幸いです。