Windows Forms アプリケーションを作成しています。フォームがあります。ボタンのクリックで元のフォームから実行時に新しいフォームを開きたい。そして、この新しいフォームを(2.3 秒後に) プログラムで閉じますが、GUI メイン スレッド以外のスレッドから閉じます。
- 誰でもそれを行う方法を教えてもらえますか?
- 新しいフォームは、元のメイン フォームで行われていたことに影響を与えたり妨げたりしますか? (はいの場合、それを停止する方法よりも?)
ボタンクリックで開くには、ボタンイベントハンドラーに次のコードを追加してください
var m = new Form1();
m.Show();
ここで Form1 は、開きたいフォームの名前です。
また、現在のフォームを閉じるには、次を使用できます
this.close();
私は次のようにします:
var form2 = new Form2();
form2.Show();
現在のフォームを閉じるには、使用します
this.Hide();
それ以外の
this.close();
このYoutube チャンネルリンクをチェックして、簡単なスタートアップ チュートリアルを確認してください。初心者の場合に役立つかもしれません。
Dispatcher を使用して、UI スレッド以外のスレッドからグラフィカル操作を実行するだけです。これがメインフォームの動作に影響を与えるとは思いません。これはあなたを助けるかもしれません: BackgroundWorker スレッドからの UI コントロールへのアクセス
これも役立つかもしれません:
void ButtQuitClick(object sender, EventArgs e)
{
QuitWin form = new QuitWin();
form.Show();
}
ButtQuitをボタン名に変更し、 QuitWinを作成したフォームの名前に変更します。
ボタンをクリックすると別のウィンドウが開きます。別のフォームを作成し、メイン フォームにボタンを配置して機能させる必要があります。
private void btnchangerate_Click(object sender, EventArgs e)
{
this.Hide(); //current form will hide
Form1 fm = new Form1(); //another form will open
fm.Show();
}
ボタンをクリックすると、現在のフォームが非表示になり、新しいフォームが開きます