Winform中DataGridView一些常用知识

一,类型转换成datatable

DataTable dt = dataGridView1.DataSource as DataTable;

二,常用属性

1.不允许自增列 

dataGridView1.AutoGenerateColumns = false;

2.当改样式没用,添加此代码

dataGridView1.EnableHeadersVisualStyles = false;

3.DataGridViewComboBoxCell数据绑定

//第一种

this.Column4.DataSource = dtJson;
                this.Column4.DisplayMember = "org_code";
                this.Column4.ValueMember = "org_code";

//第二种

((DataGridViewComboBoxCell)dataGridView1.Rows[i].Cells[12]).Items.Add(dt.Rows[i]["status"].ToString());
                ((DataGridViewComboBoxCell)dataGridView1.Rows[i].Cells[12]).Value = dt.Rows[i]["status"].ToString();

4.DataGridViewCheckBoxCell动态赋值

 DataGridViewCheckBoxCell check = dataGridView1.Rows[i].Cells[0] as DataGridViewCheckBoxCell;

check.Value = true;

5.TextBox带下拉列表

 

 

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            var tbec = e.Control as DataGridViewTextBoxEditingControl;
            TextBox dk = e.Control as TextBox;
            if (tbec == null)
            {
                return;
            }
            if (dataGridView1.CurrentCell.OwningColumn.Name == "Column9")
            {
                AutoCompleteStringCollection autoComplete1 = new AutoCompleteStringCollection();
                autoComplete1.AddRange(skillList.ToArray());
                dk.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
                dk.AutoCompleteSource = AutoCompleteSource.CustomSource;
                dk.AutoCompleteCustomSource = autoComplete1;              
            }
        }

6.添加其他控件,如DateTimePicker

 

 

 

 Rectangle _Rectangle;
 DateTimePicker dtp = new DateTimePicker();
 public Form1()
 {
            InitializeComponent();
            this.dataGridView1.Controls.Add(dtp);
            dtp.Visible = false; 
            dtp.CloseUp += new EventHandler(dtp_TextChange);
  }
 private void dtp_TextChange(object sender, EventArgs e)
 {
            dataGridView1.CurrentCell.Value = dtp.Value.ToString("yyyy/MM/dd");
  }
  private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
  {
            if (!this.dataGridView1.ReadOnly && e.RowIndex != -1)
            {
                if (e.ColumnIndex == this.dataGridView1.Columns["delivery_day"].Index)
                {
                    _Rectangle = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, 
                   e.RowIndex, true); //得到所在单元格位置和大小
                    dtp.Size = new Size(_Rectangle.Width, _Rectangle.Height); //把单元格大小 
                    赋给时间控件
                    dtp.Location = new Point(_Rectangle.X, _Rectangle.Y); //把单元格位置赋给 
                    时间控件
                    dtp.Visible = true;  //显示控件
                }
                else
                    dtp.Visible = false;
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值