datagridview demo程序
namespace DatagridviewDemo
{
public partial class Form1 : Form
{
ArrayList dataSource = new ArrayList();
int result = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
/* dataGridView1添加列 */
//由于要自定义列,需要关闭自动生成列
dataGridView1.AutoGenerateColumns = false;
//新增列,对应DemoData的IntMember属性
result = dataGridView1.Columns.Add("int", "IntMember");
dataGridView1.Columns[result].DataPropertyName = "IntMember";
//新增combobox列,对应DemoData的EnumMember属性
DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
col.DataSource = EnumToArray(new DemoData().EnumMember);
col.DataPropertyName = "EnumMember";
col.HeaderText = "EnumMember";
dataGridView1.Columns.Add(col);
//新增checkbox列,对应DemoData的BoolMember属性
DataGridViewCheckBoxColumn col1 = new DataGridViewCheckBoxColumn();
col1.DataPropertyName = "BoolMember";
col1.TrueValue = true;
col1.FalseValue = false;
col1.HeaderText = "BoolMember";
dataGridView1.Columns.Add(col1);
//新增按钮列
DataGridViewButtonColumn col2 = new DataGridViewButtonColumn();
col2.Text = "Send";
col2.UseColumnTextForButtonValue = true;
col2.HeaderText = "Operate";
dataGridView1.Columns.Add(col2);
/* 填充数据源 */
//将自定义类的对象添加到ArrayList中,构成数据源
DemoData data = new DemoData();
data.IntMember = 1;
data.EnumMember = EnumMember.ITEM1;
dataSource.Add(data);
data = new DemoData();
data.IntMember = 2;
data.EnumMember = EnumMember.ITEM2;
dataSource.Add(data);
data = new DemoData();
data.IntMember = 4;
data.EnumMember = EnumMember.ITEM1;
dataSource.Add(data);
//绑定数据源,操作控件之后,dataSource会实时更新,
//但是代码修改dataSource之后,控件不会更新,需要重新绑定数据源
dataGridView1.DataSource = dataSource;
}
private Enum[] EnumToArray(Enum e)
{
Array values = Enum.GetValues(e.GetType());
Enum[] p = new Enum[values.Length];
for(int i=0;i< values.Length;i++)
{
p[i] = (Enum)values.GetValue(i);
}
return p;
}
//增加行
private void button1_Click(object sender, EventArgs e)
{
DemoData data = new DemoData();
data.IntMember = 4;
data.EnumMember = EnumMember.ITEM1;
dataSource.Add(data);
dataGridView1.DataSource = null;
dataGridView1.DataSource = dataSource;
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
//点击了按钮列
if(e.ColumnIndex == 3)
{
MessageBox.Show("button " + e.RowIndex.ToString() + " click");
}
}
}
public class DemoData
{
private int intMember;
public int IntMember
{
get
{
return intMember;
}
set
{
intMember = value;
}
}
private EnumMember enumMember;
public EnumMember EnumMember
{
get
{
return enumMember;
}
set
{
enumMember = value;
}
}
private bool boolMember;
public bool BoolMember
{
get
{
return boolMember;
}
set
{
boolMember = value;
}
}
}
public enum EnumMember
{
ITEM1,
ITEM2
}
}
完整工程在 https://download.csdn.net/download/m0_37782115/20644181