2009-09-15 12 views
1

私はログインフォームとChangePasswordフォームを持っています。ロギング時にログインフォームに入力されたユーザー名の値を取得したいとします。次のようにWindowsアプリケーションでC#を使用して値を1つのフォームから別のフォームに取得する

私は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 =新しいfrmLoginを(インスタンス化します)。 – RameshVel

答えて

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フォームを表示していますか?
あなたはactualyあなたの入力したユーザー名を知らないあなたのログインフォームとそのインスタンスの新しいインスタンスを作成している...あなたのコード内で

objLogin.ShowDialog(); 

よう

+0

私は、ユーザーが正常にログインした後に表示されるMDIフォームを持っています。メニューコントロールを使用してパスワード変更フォームを開きます。 プログラムを実行すると、最初のフォームはログインフォームで、2番目のフォームはmdiフォームで、mdiフォームはメニューコントロールのヘルプで構成され、ユーザーはパスワード変更フォームを開くことができます。 – Sheetal

1

がsomehitng必要があります。

変更パスワードフォームにUserNameというプロパティを追加することをお勧めします。フォームの呼び出しコードでは値を割り当てます。このようにいろいろ書い:

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

//create changepassword form  
frmChangePwd objChangePwd = new frmChangePwd(); 
objChangePwd.UserName = objLogin.RetUserName; 
objChangePwd.ShowDialog(); 
関連する問題