我有一个C#表单,可以打印用户控件的多个实例。让我们说表单打印5个用户控件实例(请参阅附件中的链接)。如何存储/保存所有用户控件中输入的数据?感谢
以下是C#表单的屏幕截图:
答案 0 :(得分:2)
当您在List或其他内容中实例化用户控件时,您必须存储用户控件。
你可以拥有这样的课程:
class SomeUC : UserControl
{
public SomeUC()
{
}
// A public method.
public string GetData()
{
return textBox1.Text;
}
}
textBox1
<{1}}中TextBox
的名称SomeUC
然后在你的主要内容中。
// Instantiate a List that will hold your UserControls, this has to be outside all methods
List<SomeUC> list = new List<SomeUC>();
// And now when you want to build your UCs
// Instantiate your UserControl
SomeUC uc1 = new SomeUC();
// Store your UserControl in a List or something (Can't help you with that)
list.Add(uc1);
尽可能多地添加。
List
不是唯一可以做到这一点的方法,但由于您不知道预先要构建多少个UserControl,因此使用List
。
然后,您可以通过索引从列表中访问它们。
SomeUC uc1 = list[0];
string data = uc1.GetData();
这是访问TextBox
中的一个控件(SomeUC
)的示例。对于其他类(例如ComboBox
),交互是不同的。这意味着Text
中没有ComboBox
属性。你必须在自己身上找出类似的东西。需要进行一些研究。如果找不到合适的解决方案,你总能回来。
答案 1 :(得分:0)
尝试使用此代码访问页面中的用户控件
Dim txtName As TextBox = TryCast(UserControlName.FindControl("txtName"), TextBox)
答案 2 :(得分:0)
您可以为用户控件中的每个项目创建这样的属性。
public string DG
{
get
{
return txtDG.Text;
}
set
{
txtDG.Text = value;
}
}
然后,您可以使用表单中的以下行来访问控件值。 假设您已经创建了一个usercontrol MyControl ,并且您已在FlowLayoutPenal(pnlFLP)中放置了此控件的一些对象。
从控制中获取价值
string DG = ((MyControl)pnlFLP.Controls[0]).DG;
在控件中设置值
((MyControl)pnlFLP.Controls[0]).DG = "1";