私はメインフォームとしてこの「ホーム」を持っています...そして私は管理者ログインフォームを開く管理者ログインボタンを持っています...しかし、ボタンは管理者ログインフォームの数を
4 に答える
2
ログイン フォームを表示ShowDialog()
-> ログイン フォームが表示されている限り残りのフォームをブロックするか、開いているフォームを追跡し、ログイン フォームが開いているときにボタンをクリックしても何もしません。
最初の例:
private void ButtonClick(object sender, EventArgs e)
{
var frm = new LoginForm();
frm.ShowDialog();
}
2 番目の例:
private LoginForm form;
private void ButtonClick(object sender, EventArgs e)
{
if (form != null)
{
if (form.Visible)
{
return;
}
form.Show();
}
else
{
form = new LoginForm();
form.Show();
}
}
3 番目の例 (LINQ を使用):
private void ButtonClick(object sender, EventArgs e)
{
if (Application.OpenForms.Cast<Form>().Any(x => x.GetType() == typeof(LoginForm)))
{
return;
}
var frm = new LoginForm();
frm.Show();
}
于 2013-06-13T10:13:34.703 に答える
1
簡単な解決策はboolean flag
、フォームを開いたときに a を設定することです。
bool AdminFormOpen;
private void adminLoginBtn_click()
{
if(!AdminFormOpen)
{
// Open the form.
AdminFormOpen = true;
}
}
次に、 で、Admin Form
mutator メソッドを使用してこの値をリセットしてください。何かのようなもの:
protected void OnClosed(EventArgs e)
{
parentForm.setAdminFormOpen(false);
}
于 2013-06-13T10:12:51.647 に答える
0
ブール変数を使用して、フォームが既に存在するかどうかを通知します。
于 2013-06-13T10:13:08.523 に答える