0
嗨,我有創建新的變量的文本框還不存在,但可以在運行時創建的代碼。它工作的偉大,看到代碼波紋管如何在公共部分類中聲明Textbox值(使用Controls.Find)而不出錯?
public void btnApagar_Click(object sender, EventArgs e)
{
TextBox txtAcessorio4 = (TextBox)gpbCategoria.Controls.Find("txtAcessorio4", false).FirstOrDefault();
if (txtAcessorio4 != null && txtAcessorio4.Text == "" && lblAcessorio4.Name == "lblAcessorio4")
{
MessageBox.Show("Perfect");
}
}
的問題,我想用在代碼中的另一個地方這個創建的變量太多,我試過了:
public partial class cad_produto_acessorios_novo : Form
{
TextBox txtAcessorio4 = (TextBox)gpbCategoria.Controls.Find("txtAcessorio4", false).FirstOrDefault();
}
public void btnApagar_Click(object sender, EventArgs e)
{
if (txtAcessorio4 != null && txtAcessorio4.Text == "" && lblAcessorio4.Name == "lblAcessorio4")
{
MessageBox.Show("Perfect");
}
}
,但我對公共部分類有波紋錯誤(gpbCategoria是我的羣組名稱):
Error 1 A field initializer cannot reference the non-static field, method, or property 'InfoEarth_Cad_Cliente.cad_produto_acessorios_novo.gpbCategoria
有人知道如何解決它嗎?
什麼是'gpbCategoria'對象? – Chris 2013-05-02 22:02:02
@Chris Bain正如我在錯誤之上所說的,gpbCategoria是我的groupbox名稱(在運行時創建的所有標籤和文本框都在這個groupboxname中。謝謝 – 2013-05-02 22:06:27
如果控件是在運行時創建的,那麼如何才能找到「txtAcessorio4」它...因爲該行聲明變量,並試圖在創建窗體時爲其賦值。顯然,由於您在運行時創建了控件,因此無法找到它。此外,「gpbCategoria」容器還沒有被初始化並添加到表單中,這是錯誤真正抱怨的原因,爲了使代碼正常工作,您只需聲明變量:'TextBox txtAcessorio4 = null;'然後在控件之後分配它 – 2013-05-02 22:09:45