C# 如何在主窗体之前显示辅助窗体?
我有一个应用程序,提示用户在表单中输入密码。但是,主窗体显示在次窗体之后。如何使主窗体在用户输入密码之前不显示 编辑:C# 如何在主窗体之前显示辅助窗体?,c#,winforms,C#,Winforms,我有一个应用程序,提示用户在表单中输入密码。但是,主窗体显示在次窗体之后。如何使主窗体在用户输入密码之前不显示 编辑: //main form: public Form1() { new InputPswrd().Show(); InitializeComponent(); } 将.Show()更改为.ShowDialog(),以将密码表单显示为模式对话框,这将阻止下一行代码执行,直到您关闭密码表单 var inputPswrdF
//main form:
public Form1()
{
new InputPswrd().Show();
InitializeComponent();
}
将.Show()
更改为.ShowDialog()
,以将密码表单显示为模式对话框,这将阻止下一行代码执行,直到您关闭密码表单
var inputPswrdForm = new InputPswrd();
inputPswrdForm.ShowDialog();
我假设您在继续之前还想知道用户的密码是否有效 您可以在第二个窗体上创建一个属性,一旦控件返回到第一个窗体,就可以检查该属性,例如:
public bool IsUserAuthenticated { get; set; }
然后在第一种形式中:
var inputPswrdForm = new InputPswrd();
inputPswrdForm.ShowDialog();
if (!inputPswrdForm.IsUserAuthenticated)
// password was wrong, take some action
InitializeComponent();
将.Show()
更改为.ShowDialog()
,以将密码表单显示为模式对话框,这将阻止下一行代码执行,直到您关闭密码表单
var inputPswrdForm = new InputPswrd();
inputPswrdForm.ShowDialog();
我假设您在继续之前还想知道用户的密码是否有效 您可以在第二个窗体上创建一个属性,一旦控件返回到第一个窗体,就可以检查该属性,例如:
public bool IsUserAuthenticated { get; set; }
然后在第一种形式中:
var inputPswrdForm = new InputPswrd();
inputPswrdForm.ShowDialog();
if (!inputPswrdForm.IsUserAuthenticated)
// password was wrong, take some action
InitializeComponent();
Form.ShowDialog方法有一个可选参数owner,可用于指定窗体的父子关系。例如,当主窗体中的代码显示对话框时,您可以将我(在Visual Basic中)或这个(在C#中)传递为对话框的所有者,以将主窗体建立为所有者,如下代码所示
Form f = new Form();
f.ShowDialog(this);
有关进一步参考,请参阅:Form.ShowDialog方法有一个可选参数owner,可用于指定表单的父子关系。例如,当主窗体中的代码显示对话框时,您可以将我(在Visual Basic中)或这个(在C#中)传递为对话框的所有者,以将主窗体建立为所有者,如下代码所示
Form f = new Form();
f.ShowDialog(this);
如需进一步参考,请参考:仅我的2美分,但您可以将您的登录表单设置为显示的第一个表单,并从登录表单调用您的“主”表单 假设使用典型的Windows窗体应用程序,您可以更改Program.cs的内容,如下所示:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LoginForm()); //calling the Login form instead
}
}
静态类程序
{
///
///应用程序的主要入口点。
///
[状态线程]
静态void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LoginForm());//改为调用登录表单
}
}
在我看来,这似乎比试图阻止主窗体出现在其构造函数中更符合逻辑
干杯只要我的2美分,但是您可以让您从显示的第一个表单登录,然后从登录表单调用您的“主”表单 假设使用典型的Windows窗体应用程序,您可以更改Program.cs的内容,如下所示:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LoginForm()); //calling the Login form instead
}
}
静态类程序
{
///
///应用程序的主要入口点。
///
[状态线程]
静态void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LoginForm());//改为调用登录表单
}
}
在我看来,这似乎比试图阻止主窗体出现在其构造函数中更符合逻辑
干杯如何关闭程序中的输入表单,如果手动关闭,则主表单将关闭。如何关闭程序中的输入表单,如果手动关闭,则主表单将关闭。