无法访问用户控制组件

时间:2018-06-25 07:38:35

标签: c# winforms user-controls

在用户控件中,我有一个名为dgvCustomers的datagridview,我想像这样在Gridview中加载客户:

private void Form1_Load(object sender, EventArgs e)
{
    db = new DatabaseContext();
    dgvCustomers.DataSource = db.Customers.ToList();
}

但是我无法访问datagridview,该怎么办?

这是我收到的错误:

  

名称dgvCustomers在当前上下文中不存在。

用户控件的名称是CCCustomers。

1 个答案:

答案 0 :(得分:1)

您的datagridview对用户控件是私有。您可以通过检查CCCustomers.designer.cs文件来确认这一点,在该文件中自动生成了datagridview的代码。

填充数据源的正确方法是在用户控件上创建一个公共方法,例如

public void LoadData(List<Customer> customers)
{
    dgvCustomers.DataSource = customers;
}

您将从主表单中调用的方式如下:

private void Form1_Load(object sender, EventArgs e)
{
    db = new DatabaseContext();
    CCCustomers.LoadData(db.Customers.ToList());
}