C# 向datagridview用户控件添加列
我为datagridview创建了一个usercontrol。C# 向datagridview用户控件添加列,c#,winforms,datagridview,C#,Winforms,Datagridview,我为datagridview创建了一个usercontrol。 我将其设置为gridview.autoGeneratecolumn=false public partial class MyUserControl : UserControl { // This property will be visible in your usercontrols property window in the designer public DataGridViewColumnCollecti
我将其设置为
gridview.autoGeneratecolumn=false用户控件中的代码>
public partial class MyUserControl : UserControl
{
// This property will be visible in your usercontrols property window in the designer
public DataGridViewColumnCollection Columns
{
get { return dataGridView1.Columns; }
}
public MyUserControl()
{
InitializeComponent();
this.dataGridView1.AutoGenerateColumns = false;
}
}
问题:如何在UI表单中向usercontrol添加列
- 我无法向usercontrol添加默认列,因为其他UI表单可能不使用相同的列
- 如果我没有将
gridview.autoGeneratecolumn=false代码>,则自动生成的列将显示我的数据库列名称,而不是我要向用户显示的名称
试试如何使用gridview创建列。autoGeneratecolumn
设置为false
您可以始终将datagridview的columns属性作为usercontrol的属性公开
public partial class MyUserControl : UserControl
{
// This property will be visible in your usercontrols property window in the designer
public DataGridViewColumnCollection Columns
{
get { return dataGridView1.Columns; }
}
public MyUserControl()
{
InitializeComponent();
this.dataGridView1.AutoGenerateColumns = false;
}
}
如果将usercontrol放到窗体或其他控件上,则可以在designer属性窗口中访问Columns属性。扩展上述属性
private List<string> _list = new List<string>();
private List<string> ColList
{
get { return _list; }
set { _list = value; }
}
private DataGridViewTextBoxColumn AddColumns(string Name)
{
DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn()
col.Name = Name;
col.HeaderText = Name;
col.HeaderCell.Style.WrapMode = DataGridViewTriState.NotSet;
col.ToolTipText = Name;
col.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
col.MinimumWidth = 80;
col.DataPropertyName =Name;
return col;
}
谢谢,我成功地做到了以下几点。但是,有没有更好的方法来提取或减少此代码?baseGridView.dgvMain.Columns.Add(“Name”、“Name”);baseGridView.dgvMain.Columns.Add(“密码”、“密码”);baseGridView.dgvMain.Columns[“Name”].DataPropertyName=“Name”;baseGridView.dgvMain.Columns[“Password”].DataPropertyName=“Password”;UserBindingSource.DataSource=用户;传递列的列表如何,您可以循环并添加columns@belinq我加了一个例子。。请查收,希望您能找到useful@belinq你觉得这个有用吗?谢谢,它有用。我已经替换了公共列表_List=new List()代码>带有数组公共字符串[]列代码>,那么我就更容易添加`baseGridView.Columns=新字符串[2]{“Name”,“Password”};`你认为呢?