读书人

2005怎么格式化dataGridView中某字段

发布时间: 2012-02-20 21:18:24 作者: rapoo

2005如何格式化dataGridView中某字段的值?
1,如何格式化dataGridView中某字段的值,如:

1
1
0
1
想要格式化:





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


[解决办法]
1. 请用Key/Value Pair的Collection实现, 或者用enum
2. 请用CellStyle里面的Alignment
3. 参考Sort(IComparer)
[解决办法]
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 = "女 ";
}
}
}
[解决办法]
TO:2,如何定某字段居中?

for example:

this.dataGridView1.Columns[ "列名 "].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

[解决办法]
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 "];
}
[解决办法]
方法一
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);
[解决办法]
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 = "男 ";
}
}

读书人网 >C#

热点推荐