【发布时间】:2014-01-11 05:27:13
【问题描述】:
我玩了半年的Windows Form Application,现在发现一个很连贯的事情:Form Designer中创建的控件不能用代码中的另一个实例来设置。
这是我所做的:
我创建了一个 Windows 窗体应用程序,主窗体是 Form1 类。然后我将一个 GroupBox 控件拖到 Form1 中,然后在 Form_Load 事件中添加此代码:
private void Form1_Load(object sender, EventArgs e)
{
GroupBox gb = new GroupBox();
gb.Text = "gb in code";
groupBox1 = gb;
//groupBox1.Text = "set in code";
}
通常,我认为它会给实例 groupBox1 新的值'gb',它是 GroupBox 类的另一个实例,Text 属性是“gb in code”。但是,当我按 F5 编译运行时,groupBox1 的文本仍然是“groupBox1”。即使我取消注释最后一行,groupBox1 文本也不会更改为“在代码中设置”。
我觉得它是如此有线。是因为我在表单设计器中创建了 groupBox1 实例吗?所以我不能在课程的另一部分重新评估它?
对于我的用户控件,我有点需要重新评估在表单设计器中创建的控件。 任何帮助都感激不尽。谢谢大家:)
--------编辑----------
我想要实现的是:我有两个用户控件:UC1 和 UC2,现在我正在创建另一个用户控件 UC3,其中包含 UC1 和 UC2。我在启动UC3的时候,想把UC1和UC2的实例传给UC3,否则就得把UC1和UC2的所有属性值都传给UC3。我有点需要使用 Designer for UC3 来调整 UC1 和 UC2 的大小。
所以在 UC3 中,我将我的 UC1 和 UC2 拖到 UC3 Designer 中,然后我将公共属性指向 UC1 和 UC2,例如:
public UserControl param_UC1
{
get
{
return UC1;
}
set
{
UC1 = value;
}
}
但不幸的是,UC1 不是由 param_UC1 设置的。现在我认为我不应该使用设计器,只需在 Load 事件期间添加 UC1。
非常感谢您的帮助:)
【问题讨论】:
-
你在两个类中都使用了“部分”吗? --> "公共部分类 Foo"
标签: c# winforms controls designer