2010-08-13 56 views
1

再次,我似乎无法弄清楚的一个c#问题:DataGridView中的块列

我有我的窗体上的datagridview。在Visual Studio设计模式下,我输入4列:参考,国家,名称&城市。 填入搜索表单后,我尝试刷新数据源:自定义类从选定表中提取所有数据并填充datagridview。问题是:datagridview现在拥有表格的所有列,我只希望在设计模式下输入4列。

我可以在设计模式下将所有其他列设置为visible = false,并且工作正常。但我想这个datagridview作为一个自定义控件。所以我只想显示4个输入列,而不禁用所有其他列。不可见的数据用于与其他控件(如TextBoxes)绑定到面板。

有人知道这是否可能,以及我应该如何解决这个问题?

谢谢!

+2

有一个属性标志AutoGenerateColumns - 在设计器中将此属性设置为false(或在代码中执行此操作)以防止添加未指定的列? – StuartLC 2010-08-13 07:53:12

回答

2

您有三种隐藏栏的方式。

1.-将visible属性设置为false(如ksogor所述),并且不要在设计模式下创建列。需要注意的是

GridView1.Columns["ColumnName"].Visible = false; 

是更具可读性和mantenible是

GridView1.Columns[1].Visible = false; 

2:设置的AutoGenerateColumns为false,并在设计中你的类创建列

3.-,设置属性[ Browsable(false)]在您不想显示的字段中。不要在设计模式下创建列。

第三种方法将隐藏您的应用程序的所有datagrid中的列。我喜欢它。

[Browsable(false)] 
public string Something{get;set;} 
+1

Thanx,我发现:AutoGenerateColumns隐藏在VS 2010的属性面板中。我只是将公共属性添加到我的自定义DataGridView类中,实际上它是AutoGenerateColumns的快捷方式。这也是我之所以没有找到它自己的原因:) Nr 3也是一个很棒的功能,我还没有听说过。但在这种情况下,并不是诅咒。感谢名单! – VeeWee 2010-08-13 08:12:56