パネル(pnlChild)を含むメインウィンドウ(MainWindow.cs)フォームがあり、2番目のフォーム(Settings.cs)+コントロールをパネルに追加するための新しいコントロールを作成しました。
Settings settings = new Settings() { Dock = DockStyle.Fill, TopLevel = false };
settings.FormBorderStyle = FormBorderStyle.None;
pnlChild.Controls.Add(settings);
settings.Show();
これは正常に機能しています。設定フォームにも同じものがあります。このフォームには、「外観」を含む子フォーム(Appearance.cs)であるパネル「pnlChild」も含まれています。
Settings.Appearance appearance = new Settings.Appearance() { Dock = DockStyle.Fill, TopLevel = false };
appearance.FormBorderStyle = FormBorderStyle.None;
pnlChild.Controls.Add(appearance);
appearance.Show();
質問: 外観の子フォームのボタンを押したときに、テキスト/更新テキストを「設定」フォームや「メイン」フォームに変更するにはどうすればよいですか?
これは、おそらく参照できる回避策です。このデモでは、私は、名前のテキストボックスを追加tbMain
し、tbSettings
内をMainWindows
してSettings
。
まず、MainWindow.cs
にアクセスするためのプロパティを定義しますtbMain
。
public TextBox TBM
{
get { return tbMain; }
set { tbMain = value; }
}
そして、Settings.cs
にアクセスするためのプロパティを定義しますtbSettings
。
public TextBox TBS
{
get { return tbSettings; }
set { tbSettings = value; }
}
その後、我々は使用することができますApplication.OpenForms Property
取得するMainWindows
とSettings
、インスタンスを。そして、前に定義したプロパティを使用してテキストボックスの値を変更します。
private void btInAppearance_Click(object sender, EventArgs e)
{
Settings settings = (Settings)Application.OpenForms["Settings"];
settings.TBS.Text = "TextInSettings";
MainWindow main = (MainWindow)Application.OpenForms["MainWindow"];
main.TBM.Text = "TextInMainWindow";
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加