-2

プロジェクトform1、form2、form3に3つのフォームがあり、スムーズに実行されていたので、プロジェクトform4にもう1つ追加しました。最初の3つのフォームは、ShowDialog()を介してすでにリンクされています。

Program.csファイルに触れたくありません。

スタートアップフォームとして最初にフォーム4を呼び出すにはどうすればよいですか?以前のフォーム1は、私のプロジェクトに最初に表示されたフォームでした。

また、form1rdb1とrdb2に2つのラジオボタンがあります。私のform2では、openFileDialogを[選択]ボタンにアタッチしています。ここで、ユーザーがform1でrdb1を選択すると、form2のopenFileDialogのフィルターで、拡張子が「.XML」のみのファイルを開く必要があります。Form1でrdb2を選択すると、Form2では「.TXT」ファイルのみを開くことができます。

インテリセンスでこの構文を見つけることができません。手伝ってもらえますか?

前もって感謝します..

4

3 に答える 3

2

Program.csファイルに触れたくない理由を説明できますか?これはまさに、スタートアップフォームを変更する場所です。

変更:

Application.Run(new Form1());

に:

Application.Run(new Form4());

次に、Filterプロパティを使用して、Open-およびSaveFileDialogにフィルターを設定できます。次のような値に設定します。

XML Files|*.xml

またはテキストの場合:

Text Files|*.txt

追加するために編集:

別のフォームからこれを行うには:

class Form1 {
  Form2 form2;

  void Form1_Load(object sender, EventArgs e) {
    form2 = new Form2();
  }

  void rdb1_CheckedChanged(object sender, EventArgs e) {
    if (rdb1.Checked) 
      form2.openFileDialog1.Filter = "XML Files|*.xml";
    else
      form2.openFileDialog1.Filter = "Text Files|*.txt";
  }
}

Form2デザイナのopenFileDialog1のModifiersプロパティを「Public」または「Internal」に設定して、クラス自体の外部からアクセスできるようにしていることを確認してください。

于 2009-06-18T13:40:05.177 に答える
1

program.csに触れる必要があります。ここで初期フォームが作成され、実行されます。

新しいwinformsプロジェクトを作成し、program.csを開きます。スタートアップフォームのインスタンスを使用して、Application.Runが呼び出される場所を確認できます。それはあなたがしなければならないことです。

怖がらないでください。すべてが大丈夫になります。


コメントへの応答:

Form1_Loadイベントは、Form1によってForm1内で発生します。コールチェーンに戻り、Form1がインスタンス化されてApplication.Runに渡される場所を見つける必要があります。そしてそれはprogram.csにあります。

やれ。次に、C#経由でCLRのコピーを入手します。あなたはそれを後悔することはありません(最初の数章をスキップする限り!)

于 2009-06-18T13:41:11.603 に答える
0

スタートアップフォームとして最初にフォーム4を呼び出すにはどうすればよいですか?

Program.csファイルに触れたくありません。

Program.csに触れてみませんか?Application.Run(..)に渡されるフォームインスタンスは、起動フォームを決定します。

于 2009-06-18T13:40:17.283 に答える