2013-12-11 58 views
0

我目前有兩種形式,它們是主窗體和登錄窗體。 我的主要形式是我的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(); 
    } 
} 
+0

你能否提供一些代碼示例的形式現在是如何構建,如何登錄表單被調用。 – Mino

+0

您是否在登錄後關閉登錄窗口,然後重新載入主窗體? – fedab

+0

如果您隱藏並顯示主窗體,則可以使用OnShown()方法。 – Sampath

回答

1

當你關閉你的登錄窗口:

YourDialog dialog = new YourDialog(...); 

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

對於您的對話框,如果您登錄,則必須爲登錄按鈕或您的控件設置this.DialogResult = DialogResult.OK

0

播放與.Visible屬性:
logoutToolStripMenuItem.Visible = false; //make it invisible

相關問題