【发布时间】:2012-12-19 05:28:07
【问题描述】:
我有一个 Windows 窗体,其中有一个 button1,当单击它时,动态添加到代码中的 UserControl 是这样的:
int c = 0;
private void button1_Click(object sender, EventArgs e)
{
int v;
v = c++;
panel1.VerticalScroll.Value = VerticalScroll.Minimum;
UserControl1 us = new UserControl1();
us.Name = "us" + v;
us.Location = new Point(50, 5 + (30 * v));
us.Tag = btn;
panel1.Controls.Add(us);
}
UserControl 包含 4 个控件、2 个组合框和 2 个文本框
即combobox1、combobox2、textbox1 和textbox2
有 4 个文本框在同一个表单上
still-textbox1、still-textbox2、still-textbox3 和 still-textbox4
有button2,它会将文本传输到组合框和文本框oldcombobox1、oldcombobox2、oldtextbox1和oldtextbox2
当button1 被点击两次时,它会在表单中添加两个UserControls。
我想以以下格式传输文本
oldcombobox1.text = still-textbox1.text + "," + combobox1.text(which is dynamically generated) + "," + combobox1.text (which is dynamically generated) 等来自 UserControl 的所有 combobox1 文本(动态添加)
oldcombobox2.text = still-textbox2.text + "," + combobox2.text (which is dynamically generated) + "," + combobox2.text (which is dynamically generated) 等来自 UserControl 的所有 combobox2 文本(动态添加)
oldtextbox1.text = still-textbox3 + "," + textboox1.text (which is dynamically generated) + "," + textbox1.text (which is dynamically generated) 等来自UserControl 的所有textbox1 文本(动态添加)
表示still-textbox1.text = first
当动态 UserControl 添加 3 次时,它将包含 3 次 combobox1 然后 oldcombobox1 应包含:
first、combobox1.text、combobox1.text、combobox1.text
我已经编写了这段代码,但它不起作用
foreach (Control ctrl in panel1.Controls)
{
if (ctrl is UserControl)
{
UserControl1 myCrl = ctrl as UserControl1;
oldcombobox1.text = still-textbox1.text + "," + myCrl.comboBox1.Text;
oldcombobox2.Text =still-textbox2.text + "," + myCrl.comboBox2.Text;
oldtextbox1.Text = still-textbox3.text + "," + myCrl.textBox1.Text;
oldtextbox2.Text.Text = still-textbox4.text + "," + myCrl.textBox2.Text;
}
}
【问题讨论】:
-
在您的 UserControl1 类中创建公共字符串属性,使您可以访问控件中所需的字符串。
-
秘银?什么 ?我没有理解你能写和理解代码吗?那我就知道你想说什么了
-
@shariq_khan 我认为 Mithrandir 的回答回答了你。
-
@shariq_khan 几件事。 1)告诉我你现在得到什么输出。 2)什么是
still -?这怎么可能写? 3)您能否发布您的应用程序的两个屏幕截图,一个是您的应用程序(包括所有用户控件、按钮等),另一个是单击按钮后所需输出的两个屏幕截图? 4)你的“动态添加的组合框”是什么?我看到只有一个用户控件是从您的代码中动态添加的。 -
@shariq_khan:您应该在命名约定上工作的一个建议
标签: c#