从WinForms中从外部访问时,用户控件属性不可见

时间:2018-10-18 13:37:34

标签: c# winforms datagridview user-controls

情况

  • 我有一个WinForm Form1,其中添加了两个用户控件(分别称为startControlresultsControl
  • 我的resultsControl具有一个DataGridView的{​​{1}},它是由设计者添加的。
  • 我的dataGridView1有一个名为startControl的{​​{1}}

目标

  • DataTable中将dtDataTable绑定到我的startControl

我尝试过的是将DataGridView中的resultsControl公开为属性,并访问dataGridView1中的resultsControl,但是由于某种原因,暴露的属性不是在DataSourcestartControl中都不可见。

代码

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

1 个答案:

答案 0 :(得分:0)

您需要使用resultsControl实例,因为您的dgvParameter不是static属性。

进入设计器视图,然后单击您的控件。在“属性”窗口中,查看“名称”属性。那就是您实例的名称,例如resultsControl1。现在,您可以在代码中使用resultsControl1.dgvParameter

顺便说一句,您应该遵守命名约定,即属性和类应使用UpperCamelCase命名。