好的,我会试着问这个而不是听起来很愚蠢。我有一个用户表单,我在面板中创建动态文本框。我想引用这些文本框或其他表单中的面板将texbox数据发送到excel。我需要知道如何引用这些控件。提前谢谢!!
答案 0 :(得分:0)
在用户控件上创建公共属性,每个元素对应一个要访问的元素。
public class MyControl : UserControl
{
public string Name
{
get { return textBoxName.Text; }
}
public string Address
{
get { return textBoxAddress.Text; }
}
...
然后使用来自托管用户控件的父控件的那些。
string name = myControl1.Name;
string address = myControl.Address;
答案 1 :(得分:0)
假设您有Form1
在加载事件期间向面板TextBox
动态添加panel1
,如下所示:
private void Form1_Load(object sender, EventArgs e)
{
panel1.Controls.Add(new TextBox());
}
您要Form2
从中panel1
访问数据Form2
。在panel1
上,您可以添加一个公共字段来存储对sourcePanel
的引用,但您可以随意调用它。在这种情况下,我使用public partial class Form2 : Form
{
public Panel sourcePanel;
public Form2()
{
InitializeComponent();
}
}
:
panel1
然后,您可以在创建新实例时将Form2
引用传递给任何新的Form1
实例,例如private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.sourcePanel = panel1;
f2.Show();
}
上的按钮点击事件:
Form2
然后在private void Form2_Load(object sender, EventArgs e)
{
foreach (TextBox txt in sourcePanel.Controls.OfType<TextBox>())
{
System.Diagnostics.Debug.WriteLine(txt.Text);
}
}
上,您可以使用以下代码访问TextBoxes中的所有值:
setLayout(new FlowLayout());