基本的に; Form1には2つのボタンがあり、Form2には1つのボタンがあります。Form2のボタンをクリックすると、Form1でクリックしたボタンがチェックされ、(Form1で)クリックしたボタンに応じてForm3またはForm4が開きます。
そこで、フォーム間で変数を渡す最初の方法であるMarkHallsを利用しました。さて、私のクローズドリファインメントの後半です。
Form1
private void btnLogin_Click(object sender, EventArgs e)
{
// Call function while storing variable info.
Account("login");
}
private void btnRegister_Click(object sender, EventArgs e)
{
// Call function while storing variable info.
Account("register");
}
// Function used to pass Variable info to Account form while opening it as instance.
private void Account(string formtype)
{
// Generate/Name new instant of form.
frontend_account frmAcc = new frontend_account();
// Pass variable to instance.
frmAcc.CheckButtonClick = formtype;
// Show form instance.
frmAcc.Show(this);
// Hide this instance.
this.Hide();
}
Form2
// String Variable to store value from Login.
public string CheckButtonClick { get; set; }
private void btnContinue_Click(object sender, EventArgs e)
{
// If statement to open either Main form or Registration form, based on Login variable.
if (CheckButtonClick == "login")
{
// Generate/Name new instant of form.
frontend_main frmMain = new frontend_main();
// Show form instant.
frmMain.Show();
// Close this instant.
this.Close();
}
else if (CheckButtonClick == "register")
{
// Generate/Name new instant of form.
frontend_register frmReg = new frontend_register();
// Show form instant.
frmReg.Show();
// Close this instant.
this.Close();
}
}
Form2には2つのラジオボタンがありますが、フォームを開いたときにタブコントロールのフォーカスを設定するためにそのコードを熟知できますか?すなわち。radClientがチェックされている場合はwinformを開いた後にタブコントロールにフォーカスを設定します。そうでない場合はradStudentがチェックされている場合はwinformを開いた後にタブコントロール(他のページ)にフォーカスを設定します...そしてラジオがチェックされていない場合はwinformを開かないでしょう。
これが焦点になると思います。
// Sets focus to first tab.
tabRegister.SelectedTab = tabRegister.TabPages[0];
// Sets focus to second tab.
tabRegister.SelectedTab = tabRegister.TabPages[1];