DataGridView
自动创建所有列。一切正常,应该工作,但是我需要格式化和对齐单元格值。因此,有一个属性可以添加到我的字段(HeightMeter)中,以便可以根据需要对齐和设置格式。为此,请在手动列创建代码中使用以下代码:
DataGridViewColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;DataGridViewColumn.DefaultCellStyle.Format =“ N2”;
[在使用AutoGenerateColumns解决方案时如何指定DefaultCellStyle属性-注意,我仅限于使用.net 2 :(
这里是我需要的东西和得到的东西的样本:
public partial class Form1 : Form
{
private List<Person> people = new List<Person>();
private DataGridView dataGridView1 = new DataGridView();
private DataGridView dataGridView2 = new DataGridView();
public Form1()
{
InitializeComponent();
dataGridView1.Dock = DockStyle.Top;
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dataGridView2.Dock = DockStyle.Top;
dataGridView2.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
Controls.Add(dataGridView2);
Controls.Add(dataGridView1);
Load += new EventHandler(Form1_Load);
Text = "";
}
private void Form1_Load(object sender, EventArgs e)
{
PopulateLists();
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = people;
CreateAndPopulateGrid2();
}
public void CreateAndPopulateGrid2()
{
DataGridViewColumn columnName = new DataGridViewTextBoxColumn();
columnName.HeaderText = "Name";
DataGridViewColumn columnHeight = new DataGridViewTextBoxColumn();
columnHeight.HeaderText = "Height [m]";
columnHeight.ValueType = typeof(double);
columnHeight.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
columnHeight.DefaultCellStyle.Format = "N2";
dataGridView2.Rows.Clear();
dataGridView2.Columns.Clear();
dataGridView2.Columns.Add(columnName);
dataGridView2.Columns.Add(columnHeight);
DataGridViewRow row;
foreach (Person p in people)
{
row = new DataGridViewRow();
row.CreateCells(dataGridView2);
row.Cells[0].Value = p.Name;
row.Cells[1].Value = p.HeightMeter;
dataGridView2.Rows.Add(row);
}
}
private void PopulateLists()
{
people.Clear();
people.Add(new Person("Harry", 1.7523));
people.Add(new Person("Sally", 1.658));
people.Add(new Person("Roy", 2.158));
people.Add(new Person("Pris", 1.2584));
}
}
class Person
{
[System.ComponentModel.DisplayName("Name")]
public string Name { get; set; }
[System.ComponentModel.DisplayName("Height [m]")]
public double HeightMeter { get; set; }
public Person(string name, double heightMeter)
{
Name = name;
HeightMeter = heightMeter;
}
}
我想根据我的自定义类为DataGridView自动创建所有列。一切正常,但我需要格式化和对齐单元格值。所以有一个...
将DataAnnotations属性应用于DataGridView列