如何访问用户控件的项目

时间:2014-04-07 07:12:27

标签: c# .net string winforms

我有一个C#表单,可以打印用户控件的多个实例。让我们说表单打印5个用户控件实例(请参阅附件中的链接)。如何存储/保存所有用户控件中输入的数据?感谢

以下是C#表单的屏幕截图: enter image description here

3 个答案:

答案 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";