首页 > 解决方案 > 无法访问用户控制组件

问题描述

在我的用户控件中,我有一个名为的 datagridview dgvCustomers,我想在 gridview 中加载客户,例如:

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

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

这是我收到的错误:

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

用户控件的名称是 CCCustomers。

标签: c#winformsuser-controls

解决方案


您的 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());
}

推荐阅读