如何在不创建其他实例的情况下更新主窗体

时间:2013-12-11 08:51:50

标签: c# visual-c#-express-2010

我目前有两种形式,即主要表单和登录表单。 我的主要形式是我Application.Run();我的登录表单只是一个对话框。 我已经创建了一个重新加载数据的函数。我的问题是如果我退出我的主表单,然后再次登录,主表单将不会自动刷新。我已将我的刷新功能放在form_load事件上。我试着为刷新创建一个按钮,它正如我想要的那样工作。一旦我登录其他用户,如何使刷新功能自动更改?

这是在我的program.cs:

   Application.Run(new Main_Form());

这是我主要形式的内容:

public partial class Main_Form : Form
{
    Login log = new Login();
}

private void Main_Form_Load(object sender, EventArgs e)
{            
    log.ShowDialog();
}
private void logoutToolStripMenuItem_Click(object sender, EventArgs e)
{
    DialogResult dialogResult = MessageBox.Show("Are you sure you want to logout?", "Logout", MessageBoxButtons.YesNo);
    if (dialogResult == DialogResult.Yes)
    {
        spms.classes.FormProvider.MainMenu.Hide();
        log.uname.Text = ("");
        log.pwd.Text = ("");
        log.ShowDialog();
        log.uname.Focus();
    }
}

2 个答案:

答案 0 :(得分:1)

关闭登录窗口时:

YourDialog dialog = new YourDialog(...);

if(dialog.DialogResult == DialogResult.OK) //logged in successful
{
  ...
  YourRefreshButton_Click(...);
}

对于您的对话框,如果您已登录,则必须为登录按钮或控件设置this.DialogResult = DialogResult.OK

答案 1 :(得分:0)

使用.Visible属性进行游戏:
logoutToolStripMenuItem.Visible = false; //make it invisible