2017-05-03 6 views
0

ちょっと私のようなメソッドを作成しようとしていた...作業このメソッドを取得する方法

private void btnSubmit_Click(object sender, EventArgs e) 
    { 
     FillIn(); 
    } 

    private void FillIn() 
    { 
     if (txtName.Text == "") 
     { 
      txtName.Text = "Bob Frank"; 
     } 
     if (txtAddress.Text == "") 
     { 
      txtAddress.Text = "4111 N Pensyvania Ave."; 
     } 
     if (txtCity.Text == "") 
     { 
      txtCity.Text = "Longbeach"; 
     } 
     if (txtState.Text == "") 
     { 
      txtState.Text = "CA"; 
     } 
     if(txtZip.Text == "") 
     { 
      txtZip = "90210"; 
     } 
    } 

このコードは素晴らしい作品が、私はこのようにそれにパラメータを追加してみてください。..

private void btnSubmit_Click(object sender, EventArgs e) 
    { 
     FillIn(txtName.Text, txtStreetAddress.Text, txtCity.Text, txtState.Text, txtZip.Text); 
    } 

    private void FillIn(string name, string address, string city, string state, string zip) 
    { 
     if (name == "") 
     { 
      name = "Bob Frank"; 
     } 
     if (address == "") 
     { 
      address = "4111 N Pensyvania Ave."; 
     } 
     if (city == "") 
     { 
      city = "Longbeach"; 
     } 
     if (state == "") 
     { 
      state = "CA"; 
     } 
     if(zip == "") 
     { 
      zip = "99210"; 
     } 
    } 

テキストボックスが機能しなくなり、テキストボックスが埋め込まれずにエラーになりません。どうすればこの問題を解決できますか?

+3

ヒント:txtName.Text = "Bob Frank"; –

+0

WinForms UI要素の参照を渡します。内部の文字列ではありません。したがって、あなたの例では、 'txtName'と他のテキストボックス(あるいはそれらが何であれ)をメソッドのパラメータとして渡し、' .Text'を変更します。 – mwilczynski

答えて

3

実際のコントロールを渡す必要があります。 txtName.Textを試して渡すと、プロパティの値が読み込まれるだけで、それを更新することはできません。

private void btnSubmit_Click(object sender, EventArgs e) 
{ 
    FillIn(txtName, txtStreetAddress, txtCity, txtState, txtZip); 
} 

private void FillIn(TextBox name, TextBox address, TextBox city, TextBox state, TextBox zip) 
{ 
    if (name.Text == "") 
    { 
     name.Text = "Bob Frank"; 
    } 
    if (address.Text == "") 
    { 
     address.Text = "4111 N Pensyvania Ave."; 
    } 
    if (city.Text == "") 
    { 
     city.Text = "Longbeach"; 
    } 
    if (state.Text == "") 
    { 
     state.Text = "CA"; 
    } 
    if(zip.Text == "") 
    { 
     zip.Text = "99210"; 
    } 
} 
+0

'string'は' Text'という名前のプロパティを持っていません。 –

+0

申し訳ありませんが、修正しました。もう一度やり直してください... –

関連する問題