2009-09-15 50 views
1

我有一個登錄窗體和ChangePassword窗體。我想要在登錄時檢索登錄表單中輸入的用戶名的值。使用C#在Windows應用程序中檢索從一個窗體到另一個窗體的值

我創建了一個名爲RetUserName屬性,如下所示:

public partial class frmLogin : Form 
    { 
     private string UseNam; 
     public string RetUserName 
     { 
      get { return UseNam; } 
      set { UseNam = value;} 
     } 
    } 

在這樣的屬性值設爲我寫了下面的代碼按鈕單擊事件:

this.RetUserName = (string)txtUserName.Text; 

現在檢索屬性的值,我在changepassword表單的form_load事件中使用了以下編碼:

Form_Load事件:

 frmLogin objLogin = new frmLogin(); 
     string UserName1 = objLogin.RetUserName; 
     MessageBox.Show("NAME : " + UserName1); 
     txtUserName.Text = UserName1; 

現在,當我執行上述程序不會產生任何錯誤,但是用戶在登錄表單中輸入的值不會顯示在changepassword表單中。

任何人都可以讓我知道如何更改編碼,以便我可以檢索用戶在登錄表單中輸入的值,以便在changepassword表單中顯示?

請幫幫我! 在此先感謝!

+0

實現一個共享或靜態屬性...這是訣竅..您的代碼將實例化一個新對象frmLogin objLogin = new frmLogin(); – RameshVel 2009-09-15 08:06:36

回答

0

您正在創建一個登錄窗體的局部變量,所以它將在其範圍後被銷燬,並且UseNam的值也會丟失。 您必須將其存儲到您想要使用它的地方纔能訪問的東西。

您可以通過以下也做的方式是(連同其他方式:)

// This class is mainly used to transfer values in between different components of the system 
    public class CCurrent 
    { 
     // Currently logged in user 
     public static string UserName = ""; 

     // Indicates to whole system whether database is Valid and connectable or not ? 
     public static Boolean DatabaseValid = false; 
     // Indicates whether we are able to connect databse or not. 
     public static Boolean DatabaseConnectable = false; 

    } 

現在在你的代碼,你可以做以下操作:

frmLogin objLogin = new frmLogin(); 
    objLogin.ShowDialog(); 
    CCurrent.UserName = objLogin.RetUserName; 
    MessageBox.Show("NAME : " + CCurrent.UserName); 
    txtUserName.Text = CCurrent.UserName; 
0

你是如何顯示objLogin形式?
應該somehitng像

objLogin.ShowDialog(); 
在你的代碼

...

+0

我有一個MDI表單,將在用戶成功登錄後顯示。並使用菜單控件打開changepassword表單。 執行程序時,第一種形式是登錄表單,第二種形式是mdi表單,而mdi表單由菜單控件在菜單控件的幫助下由用戶可以打開更改密碼錶單組成。 – Sheetal 2009-09-15 08:01:45

1

您actualy創建登錄表單的一個新實例,該實例並不知道你輸入的用戶名。

我建議你在你的changepassword表單中添加一個屬性UserName。並在表單的調用代碼中分配值。 Someting like this:

//create and show login dialog 
frmLogin objLogin = new frmLogin(); 
objLogin.ShowDialog(); 

//create changepassword form  
frmChangePwd objChangePwd = new frmChangePwd(); 
objChangePwd.UserName = objLogin.RetUserName; 
objChangePwd.ShowDialog(); 
相關問題