メイン フォームが表示される前に名前を入力するプログラムを作成したい (または既に作成している)。入力した名前は変数として保存する必要があります。そんなに難しくないのですが、別のフォームから取得したいのですが、無理です どうすればいいですか?
YouTube の動画を見たり、Google で検索したりしましたが、必要なものが見つかりませんでした。お役に立てれば幸いです。
よろしく
グローバル変数はコードの臭いです。一般的には良い考えではありません (脆弱でテスト不可能なコードになります)。
あなたの場合、2 番目のフォームへの参照がある場合は、それにデータを渡すことができます。このフォームにプロパティを追加して、入力することができます。
// in Form2
public string Name { get; set; }
// in Form1 (frm2 is a reference to Form2)
frm2.Name = theName;
データが 2 番目の形式に不可欠な場合、別の方法として、名前をパラメーターとして受け取るコンストラクター オーバーロードを作成します。
フォームにパブリック プロパティを作成すると、どこからでも参照できるようになります。
public string MyProperty{get; set;};
フォーム クラスを記述している場合は、名前の設定に使用できるパブリック プロパティを追加できます。
public partial class myForm : Form
{
public String EnteredName { get; set; }
public myForm()
{
InitializeComponent();
}
}
次に、次のように呼び出すことができます。
myForm f = new myForm();
f.EnteredName = "My Name";
f.ShowDialog();
つまり、フォーム クラス内で必要なことは何でも実行できます。
NB プロパティ Name を呼び出さないでください。これは、フォームの Name プロパティを隠しているためです。