情况
Form1
,其中添加了两个用户控件(分别称为startControl
和resultsControl
)resultsControl
具有一个DataGridView
的{{1}},它是由设计者添加的。dataGridView1
有一个名为startControl
的{{1}} 目标
DataTable
中将dt
从DataTable
绑定到我的startControl
我尝试过的是将DataGridView
中的resultsControl
公开为属性,并访问dataGridView1
中的resultsControl
,但是由于某种原因,暴露的属性不是在DataSource
和startControl
中都不可见。
代码
Form1
我似乎无法使用startControl
访问我的public partial class resultsControl : UserControl
{
public resultsControl()
{
InitializeComponent();
}
[PropertyTab("Data"), Description("Test"), Category("Misc"), Browsable(true)]
public DataGridView dgvParameter
{
get
{
return this.dataGridView1;
}
set
{
this.dataGridView1 = value;
}
}
}
-我在做什么错了?
编辑
如前所述,我需要使用dataGridView1
的实例。我已经在resultsControl.dgvParameter
中创建了resultsControl
的实例-这意味着我只需要从resultsControl
用户控件访问它,对吗?
我的第一个猜测是在Form1
中公开另一个属性,还是有另一种方式可以从我的(父)表单访问它?
代码
startControl
答案 0 :(得分:0)
您需要使用resultsControl
的实例,因为您的dgvParameter
不是static
属性。
进入设计器视图,然后单击您的控件。在“属性”窗口中,查看“名称”属性。那就是您实例的名称,例如resultsControl1
。现在,您可以在代码中使用resultsControl1.dgvParameter
。
顺便说一句,您应该遵守命名约定,即属性和类应使用UpperCamelCase命名。