我为datagridview创建了一个usercontrol
我在usercontrol中将其设置为gridview.autoGeneratecolumn = false;
。
问题:如何在我的UI表单中向usercontrol添加列?
我无法将默认列添加到usercontrol,因为其他UI表单可能不使用相同的列。
如果我没有放gridview.autoGeneratecolumn = false;
,那么自动生成的列将显示我的数据库列名,而不是我想要显示给用户的名称。
答案 0 :(得分:1)
您始终可以将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放到窗体或其他控件上,则可以在设计器属性窗口中访问Columns属性。
答案 1 :(得分:1)
扩展上面的属性
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;
}
然后,您可以遍历ColumnList和Add,并设置列的基本属性
foreach(string s in ColList)
{ datagridview1.Columns.Add(AddColumns(s)); }
答案 2 :(得分:0)
试试这个link如何创建gridview.autoGeneratecolumn
设置为false