datagridview添加

  1. 添加datatable
  private DataTable dataTable = new DataTable();

2.初始化

   private void DGVInit()
        {
            dataTable.Columns.Add("序号");
            dataTable.Columns.Add("报警代码");
            dataTable.Columns.Add("报警时间");
            dataTable.Columns.Add("报警信息");
            this.dgv.DataSource = dataTable;
            this.dgv.Columns[0].Width = 100;
            this.dgv.Columns[1].Width = 200;
            this.dgv.Columns[2].Width = 300;
            this.dgv.Columns[3].Width = 500;
            this.dgv.AllowUserToResizeColumns = false;//不允许用户改变列宽
            this.dgv.AllowUserToAddRows = false;//无法修改
            this.dgv.AllowUserToResizeRows = false;//不允许用户改变行宽
            this.dgv.ReadOnly = true;//只读
            this.dgv.RowHeadersVisible = false;//头列不显示 
            for (int i = 0; i < this.dgv.Columns.Count; i++)
            {
                this.dgv.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
            }
            this.dgv.ForeColor = Color.Red;
            //双缓冲
            var dgv = new DataGridView();
            dgv.SetDoubleBuffered(true);

        }
  1. 双缓冲 加扩展方法
  public static class Extensions
    {
        /// <summary>
        /// 将给定的DataGridView设置双缓冲
        /// </summary>
        /// <param name="dgv">给定的DataGridView</param>
        /// <param name="b">设置为ture即打开双缓冲</param>
        public static void SetDoubleBuffered(this DataGridView dgv, bool b)
        {
            var dgvType = dgv.GetType();
            var pi = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);
            pi.SetValue(dgv, b, null);
        }


    }
  1. 是否包含
  private bool IsContents(DataTable data, string errorID)
        {
            bool b = false;
            string s = dataTable.Columns[1].ToString();
            try
            {
                if (data.Select(s + "='" + errorID + "'").Length > 0)
                {
                    b = true;
                }
            }
            catch
            {
                return b = false;
            }
            return b;
        }
  1. 把数据添加到时datatable里
 private void Updata(string errorID, string dateTime, string errorMes)
        {
            string strNum;
            
            int y = this.dgv.Rows.Count;
            strNum = (this.dgv.Rows.Count + 1).ToString();
            DataRow arrData = dataTable.NewRow();
            arrData.ItemArray = new object[] { strNum, errorID, dateTime, errorMes };
            dataTable.Rows.Add(arrData);
            this.dgv.FirstDisplayedScrollingRowIndex = y;
            this.dgv.Update();
        }
  1. 根据数据清除某行
  private void Clear(string errorID)
        {
            string s = dataTable.Columns[1].ToString();
            if (IsContents(dataTable, errorID))
            {
            DataRow[] ss = dataTable.Select(s + "='" + errorID + "'");
            dataTable.Rows.Remove(ss[0]);
            }        
            this.dgv.Update();
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值