2016-10-29 11 views
-2

私が試しても、 "名前 'userName'は現在のコンテキストに存在しません。私は、ログインフォームからメインフォームのフィールドにユーザー名とログインを渡そうとしています。私はこれらのフィールド修飾子をPublicとして設定しました。 LoginFormクラスのインスタンスを作成しようとしましたが、同じ動作が発生します。別のフォームで文字列変数を使用するC#

LoginForm.cs

public void btnLogin_Click(object sender, EventArgs e) 
    { 
     string userName = User.Text; 
     string password = Password.Text; 

     this.Visible = false; 
    } 

MainForm.cs

public void Browser_DocumentCompleted_1(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     Browser.Document.GetElementById("Email").InnerText = userName; 
     Browser.Document.GetElementById("Password").InnerText = password; 
    } 
+6

(ローカル)変数が有効範​​囲にありません。 C#チュートリアルを読むことは価値があるでしょう。 – user2864740

+1

"ログインフォームからメインフォームのフィールドにユーザー名とログインを渡そうとしています" ...コード例の中には、何もしていないことが示されています... – Jim

+0

さて、エラーが出ましたloginFormのインスタンスを作成し、loginFormのテキストを変数に渡します。しかし、それは私が意図するようにはまだ行動しません。最初のフォームには、テキストボックスUserとPasswordが含まれています。送信ボタンをクリックすると、送信ボタンが変数に格納されます。変数はWebBrowserコントロール内のページのフィールドに送信されます。 userName変数を文字列で置き換えることができ、Emailフィールドを埋めることができるので、Idが正しいことが分かります。 – user3341951

答えて

0

あなたはこのような何かを試してみましたが、あなたはLoginFormウィンドウを作成しますか?

。これは、あなたがそれを行う方法についてのアイデアを与えるだけのMainFormにイベントを実行し、直接loginformにそれらを作成していないかもしれません
var loginform = new LoginForm(); 
loginform.textbox1.TextChangedEvent += new textbox1_TextChangedEvent(); 
loginform.textbox2.TextChangedEvent += new textbox2_TextChangedEvent(); 
loginform.Show(); //Can also use loginform.ShowDialog(); 


void textbox1_TextChangedEvent(object sender, Eventarg e) 
{ 
    textbox1_Username.Text == ((TextBox)sender).Text; 
} 

void textbox2_TextChangedEvent(object sender, Eventarg e) 
{ 
    textbox2_Password.Text == ((TextBox)sender).Text; 
} 

...あなたのTextBoxがパブリックとして設定されていることを確認
0

しようとすることができることは、コントロール自体の外に変数を宣言することです。

まず、この

public string userName; 
public string password; 
public void btnLogin_Click(object sender, EventArgs e) 
{ 
    userName = User.Text; 
    password = Password.Text; 

    this.Visible = false; 
} 

のような外部の変数を作る(私は証拠それを確認しなかったので、擬似コード)私は右の を覚えていれば、このようにメインcontrol.variableを参照してください。
Browser.Document.GetElementById("Email").InnerText = LoginForm.UserName 

必要に応じてコードを修正し、修正してください。歓声

関連する問題