我想在加载winform时启用或禁用文本框。但是,文本框位于用户控件中。
我可以制作启用/禁用这些文本框的方法吗?
public void EnableTextbox(TextBox tb)
{
tb.Enabled = true;
}
public void DisableTextbox(TextBox tb)
{
tb.Enabled = false;
}
他们来自我的表格:
EnableTextbox(///Name of textbox)
或者我必须在方法中命名它们吗?
答案 0 :(得分:0)
您可以尝试在UserControl中使用FindControl方法,如下所示:
UserControl myControl = new UserControl();//You must not create a new instace, you need to poitn at yours.
TextBox referencedTextBox = (TextBox)myControl.FindControl("myTextBoxId");
//referencedTextBox.WhateverYouWant
答案 1 :(得分:0)
您可以从根表单中调用它,它将访问自身及其子项中的每个控件。您需要做的就是完成逻辑以确定是否应禁用TextBox。我建议在InitializeComponent()
之后在构造函数中调用它。
private void ProcessControl(Control cntrl)
{
if (cntrl == null)
{
return;
}
else if (cntrl is TextBox)
{
if (true) //condition to determine if the textbox is enabled
{
cntrl.Enabled = true;
}
else
{
cntrl.Enabled = false;
}
}
else if (cntrl.HasChildren)
{
foreach (Control item in cntrl.Controls )
{
ProcessControl(item);
}
}
}