将列添加到datagridview usercontrol

时间:2011-04-28 08:03:26

标签: c# winforms datagridview

我为datagridview创建了一个usercontrol 我在usercontrol中将其设置为gridview.autoGeneratecolumn = false;

问题:如何在我的UI表单中向usercontrol添加列?

  • 我无法将默认列添加到usercontrol,因为其他UI表单可能不使用相同的列。

  • 如果我没有放gridview.autoGeneratecolumn = false;,那么自动生成的列将显示我的数据库列名,而不是我想要显示给用户的名称。

3 个答案:

答案 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

的列