C# 如何在Datagridview C中为特定列设置列标题文本#

C# 如何在Datagridview C中为特定列设置列标题文本#,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,如何在Datagridview C#中为特定列设置列标题文本列对象中有HeaderText属性,您可以在初始化网格后找到该列并设置其HeaderText,也可以通过DataGrid的designer在windows窗体设计器中进行设置 public Form1() { InitializeComponent(); grid.Columns[0].HeaderText = "First Column"; //...........

如何在Datagridview C#

中为特定列设置列标题文本列对象中有HeaderText属性,您可以在初始化网格后找到该列并设置其HeaderText,也可以通过DataGrid的designer在windows窗体设计器中进行设置

    public Form1()
    {
        InitializeComponent();

        grid.Columns[0].HeaderText = "First Column"; 
        //..............
    }
更多详情见MSDN。有关DataGrid的更多详细信息,请参阅


关于信息,如果您要绑定到类,则可以通过
DisplayNameAttribute
在您的类型中执行此操作:

[DisplayName("Access key")]
public string AccessKey { get {...} set {...} }
现在,自动生成列上的标题文本将是“Access key”


此代码将获得
HeaderText
值。

如果您使用visual studio designer,则可能会在
YourForm.designer.cs
文件中为每个列定义字段,例如:

private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn1;    
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; 
如果您为他们提供有用的名称,您可以轻松设置
标题文本

usefulNameForDataGridViewTextBoxColumn.HeaderText = "Useful Header Text";

dgv.Columns[0].HeaderText=“您的标题”

如何在不调用cellvaluechanged事件的情况下完成同样的事情?我已经有一段时间没有使用它了,但我认为如果您通过designer来完成(如果您事先知道希望列值是什么),那么就不必触发事件。或者您可以设置一些标记,如
settingHeader=true,然后在
callvaluechanged
处理程序中检查此项以跳过任何操作。虽然此代码可能会回答问题,但提供有关如何和/或为什么解决问题的其他上下文将提高答案的长期价值。
Dg_View.Columns.Add("userid","User Id");
Dg_View.Columns[0].Width = 100;

Dg_View.Columns.Add("username", "User name");
Dg_View.Columns[0].Width = 100;
private void datagrid_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
    string test = this.datagrid.Columns[e.ColumnIndex].HeaderText;
}
private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn1;    
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; 
usefulNameForDataGridViewTextBoxColumn.HeaderText = "Useful Header Text";