我有两种形式: 表格1:家长:登录屏幕 Form2:孩子:申请
当应用程序启动时,将显示Form1。用户输入密码,如果此密码与常量匹配,则将隐藏Form1,并显示Form2。 现在,当我使用“注销”按钮关闭Form2时,我将向Form1发送一个“消息”,以便它可以再次显示。将此视为Messenger应用程序。注销后,它将带您返回登录屏幕。
我正在搜索两天,但找不到对我有用的任何东西。很抱歉,如果这个问题是重复的。
答案 0 :(得分:0)
在string.split(regexp)
中,您可以先打开第二个表单的Form1
事件,然后再打开它:
FormClosed
然后,您可以在var form2 = new Form2();
form2.FormClosed += Form2_FormClosed;
form2.Show();
中的事件处理程序中做任何有用的事情:
Form1
答案 1 :(得分:0)
Form1:
创建静态和公共变量
static public string message = "Message from Form1";
Form2
使用此变量
MessageBox.Show(Form1.Message, " Message");
答案 2 :(得分:0)
我建议您使用“主/申请表”作为父项,并将“登录表”显示为“子项”。在主/父表单的“显示”事件中显示带有ShowDialog()的登录表单(例如)。根据您的Form类的智能程度,您可能必须在下面更改一些代码。下面的代码示例暗示,“登录”表单执行所有登录逻辑。然后,它会在关闭时使用DialogResult属性向其父级发出登录是否成功的信号。
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void ButtonLogoutClick(object sender, EventArgs e)
{
LoginUser();
}
private void MainFormShown(object sender, EventArgs e)
{
LoginUser();
}
private void LoginUser()
{
using (var loginForm = new LoginForm())
{
var loginResult = loginForm.ShowDialog();
if (loginResult == DialogResult.OK)
{
//Login Success
var userId = loginForm.User.ID; //Query user ID from Login Form for example
}
else
{
//Login Failed
Close(); //Close Program for example
}
}
}
}