2017-05-03 70 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

對不起,我糾正了這個問題,再試一次... –