C# Detagridview Demo

 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值