我有这样的代码:
MyUserControl[] myControl = new MyUserControl[10];
表单加载时:
for( int i = 0; i < 10; i++ )
{
myControl[i] = new MyUserControl();
myControl[i].label1.Text = "Title";
this.Controls.Add ( myControl[i] );
}
现在正常显示。
然后按下按钮如下:
private void Button1_Click(object sender, EventArgs e)
{
myControl[0].label1.Text = "Other Title";
}
当我看到调试模式时,正常添加了值,但是lable1文本没有显示“其他标题”。
所以,我尝试使用以下方法,但不能正常工作。
myControl[0].label1.Update();
myControl[0].label1.Invalidate();
myControl[0].label1.Refresh();
请劝告。
答案 0 :(得分:0)
我不理解你的概念希望这个例子适合你
private void Button1_Click(object sender, EventArgs e)
{
//myControl[0].label1.Text = "Other Title";
MyUserControl ctrl = null;
foreach (var c in this.Controls)
{
if (c.GetType().Name == "MyUserControl")
{
var myctrl = (MyUserControl)c;
if (myctrl.Text == "Title")
{
ctrl = myctrl;
break;
}
}
}
if (ctrl != null)
{
ctrl.Text = "Other Title";
}
}
这是一个非常简单的示例,代码可以正常工作,您必须随心所欲地进行增强
答案 1 :(得分:0)
谢谢大家。我在这件事上有根本原因。
myControl[0].label1.Text = "Other Title";
myControl[0].BringToFront(); // <- Solved problem with this code.
我不知道为什么z-order被扭曲了。