C#winforms DataGridView-当AutoGenerateColumns = true时如何使用DataSource类格式化双精度格式>> [

问题描述 投票:1回答:1
我想根据我的自定义类为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自动创建所有列。一切正常,但我需要格式化和对齐单元格值。所以有一个...
c# winforms datagridview .net-2.0
1个回答
3
投票

将DataAnnotations属性应用于DataGridView列

© www.soinside.com 2019 - 2024. All rights reserved.