1,如何格式化dataGridView中某個字段的值,如:
性別  
1
1
0
1
想要格式化為:
性別




=======================
2,如何設定某個字段居中對齊?
3,如何將字段按要求重新來排列?
姓名,性別,出生日期====>姓名,出生日期,性別

解决方案 »

  1.   

    其实这些都是datagridview的高级话题,希望有人可以提供一些专门讲解datagridview高级使用的资料!
      

  2.   

    1. 请用Key/Value Pair的Collection实现, 或者用enum
    2. 请用CellStyle里面的Alignment
    3. 参考Sort(IComparer)
      

  3.   

    TO:1,如何格式化dataGridView中某個字段的值可以给DataGridView添加CellFormatting事件,以格式化显示它的单元格的内容,比如:private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
    if (this.dataGridView1.Columns[e.ColumnIndex].HeaderText == "sex")
    {
    if (object.Equals(e.Value, 1))
    {
    e.Value = "男";
    }
    else if (object.Equals(e.Value, 0))
    {
    e.Value = "女";
    }
    }
    }
      

  4.   

    TO:2,如何設定某個字段居中對齊?for example:            this.dataGridView1.Columns["列名"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
      

  5.   

    TO:3,如何將字段按要求重新來排列?你的意思是不是自定义表头??for example:private void Form1_Load(object sender, EventArgs e)
            {
                DataBind();
            }
            private void DataBind()
            {
                //初始化DataGridView
                DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
                column.Name = "sno";
                column.HeaderText = "学号";
                //设置绑定数据源的sno字段
                column.DataPropertyName = "sno";
                this.dataGridView1.Columns.Add(column);            column = new DataGridViewTextBoxColumn();
                column.Name = "sname";
                column.HeaderText = "姓名";
                //设置绑定数据源的sname字段
                column.DataPropertyName = "sname";
                this.dataGridView1.Columns.Add(column);            column = new DataGridViewTextBoxColumn();
                column.Name = "sage";
                column.HeaderText = "年龄";
                //设置绑定数据源的"sage"字段
                column.DataPropertyName = "sage";
                this.dataGridView1.Columns.Add(column);            //设置不自动产生列
                this.dataGridView1.AutoGenerateColumns = false;
                this.dataGridView1.AllowUserToAddRows = false;            //以下进行数据绑定
                SqlConnection con = new SqlConnection("server=.;database=student;uid=sa;pwd=0421");
                SqlDataAdapter sda = new SqlDataAdapter("select * from studentDetails", con);
                DataSet ds = new DataSet();
                sda.Fill(ds, "student");
                this.dataGridView1.DataSource = ds.Tables["student"];         
            }
      

  6.   

    形式 语法 结果
    数字 {0:N2} 12.36
    数字 {0:N0} 13
    货币 {0:c2} $12.36
    货币 {0:c4} $12.3656
    货币 "¥{0:N2}" ¥12.36
    科学计数法 {0:E3} 1.23E+001
    百分数 {0:P} 12.25%
    日期 {0:D} 2006年11月25日
    日期 {0:d} 2006-11-25
    日期 {0:f} 2006年11月25日 10:30
    日期 {0:F} 2006年11月25日 10:30:00
    日期 {0:s} 2006-11-26 10:30:00
    时间 {0:T} 10:30:00
      

  7.   

    方法一
    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
    if (this.dataGridView1.Columns[e.ColumnIndex].HeaderText == "sex")
    {
    if (object.Equals(e.Value, 1))
    {
    e.Value = "男";
    }
    else if (object.Equals(e.Value, 0))
    {
    e.Value = "女";
    }
    }
    }
    方法二
    在datagirdview中加入combox列
     this.dataGridView1.Columns.RemoveAt(iColumn);
                DataGridViewComboBoxColumn comboboxColumn = new DataGridViewComboBoxColumn();
                comboboxColumn = CreateComboBoxColumn(iColName);
                SetDataGridViewComboBox(ref comboboxColumn);
                this.dataGridView1.Columns.Insert(iColumn, comboboxColumn);
      

  8.   

    1.对齐的话,建议套用摸板(里面有水平对齐和垂直对齐两个属性任你选)
    2.至于1对应男,0对应女,可以后台写一个OnDataBinding方法就可以了,例你绑定在Label控件上
    protected void GetSex(object sender,Eventargs e){
      Label obj = (Label)sender;
      if(obj.Text == "0"){
        obj.Text = "女";
      }
      else{
        obj.Text = "男";
      }
    }