我正在使用DataGridView
创建自定义用户控件,我将此usercontrol添加到我的表单中。在Form1_Load
事件中,我通过调用用户控件的构造函数来初始化用户控件。它是一个参数化构造函数,其参数为List
,该列表用作用户控件中DataSource
的{{1}}。
问题是:DataGridView
未加载数据。
任何人都可以搞清楚。
表单加载事件中的代码是
DataGridView
用户控件中的代码是
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace usercontrol
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
List<Car> cars = new List<Car>();
cars.Add(new Car("Ford", "Mustang", "1967"));
cars.Add(new Car("Shelby AC", "Cobra", "1965"));
cars.Add(new Car("Chevrolet", "Corvette Sting Ray", "1965"));
ucSample uc = new ucSample(cars);
}
}
public class Car
{
private string company;
private string color;
private string year;
public Car(string com,string col,string yea)
{
this.Company = com;
this.Color = col;
this.Year = yea;
}
public string Company { get; set; }
public string Color { get; set; }
public string Year { get; set; }
}
}
答案 0 :(得分:3)
您的问题是您在额外的类中创建自定义控件但从未将控件添加到要显示的表单
一条简单的线条可以解决您的问题:
this.Controls.Add(uc);
将它放在构造函数中。这将确保您的自定义控件添加到Form
以进行显示
编辑:
当然还有一种手动方式:以下是屏幕截图How do I add my new User Control to the Toolbox or a new Winform?
的答案答案 1 :(得分:0)
datagridview在用户控制中。 这就是为什么您的Datagrid无法在表单中与用户控件一起加载的原因。
将以下代码粘贴到构造函数中
“ this.studentTableAdapter.Fill(this.universityDataSet.Student);”
在我的情况下,数据集是universityDataSet,表是Student