C#windfrom控件之datagridview(一)

      1,获取当前单元格的值,可以用DataGridview对象的CurrentCell属性取得。若当前单元格不存在的时候,返回值为NULL。

  ///--取得当前单元格的值
                label1.Text = dataGridView1.CurrentCell.Value.ToString();
       2,获取当前单元格所在的行: DataGriview. CurrentCellAddress. Y;获取当前单元格所在列: DataGriview. CurrentCellAddress.X;

label2.Text = dataGridView1.CurrentCellAddress.Y.ToString();
       3,设定当前选中的单元格的方法: DataGridview. CurrentCell。取消设定单元格的方法: DataGridview. CurrentCell = null

dataGridView1.CurrentCell = dataGridView1[1,0];
        4,设定 所有单元格不可编辑

 dataGridView1.ReadOnly = true;
        5,指定 某个单元格或者 某行或者 某列为只读模式:

///---指定某列可读
                dataGridView1.Columns[1].ReadOnly = true;
                ///--指定某行可读
                dataGridView1.Rows[1].ReadOnly = true;
                ///---指定单元格可读
                dataGridView1[0, 5].ReadOnly = true;
        6,当设定单元格为不可编辑状态时,可以使用 CellBeginEdit事件来取消单元格的编辑模式:

这里,先看看我的表格里面的数据吧。

C#windfrom控件之datagridview(一)_第1张图片

取消编辑代码:

/// <summary>
        /// ---DataGriview设定所有单元格为只读模式下解除不可编辑模式
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
        {
            DataGridView dataGridview = (DataGridView)sender;
            ///--是否进行编辑条件检查
            if (dataGridview.Columns[e.ColumnIndex].Name == "合同 编号" &&
                  !(bool)dataGridview["是否签订", e.RowIndex].Value)
            {
                ///---取消编辑
                e.Cancel = true;
            }
        }
          7,通常 DataGridview的最下面一行是用户新追加的一行(行头显示 *),禁止用户新的一行行,可以设置 DataGridview对象的 AllowUserToAddRowsfalse即可。

///---禁止创建新的一行
                dataGridView1.AllowUserToAddRows = false;

C#windfrom控件之datagridview(一)_第2张图片

        8,DataGridview默认是允许删除行的。设置属性AllowUserToDeleteRowsfalse,则用户就不能删除行了.

///---禁止删除行
                dataGridView1.AllowUserToDeleteRows = false;
       9,行删除时的条件判断。行删除时,会触发DataGridview.UserDeleteingRow事件。在该事件里,我们可以判断条件并取消删除操作

    /// <summary>
        /// --删除行时触发的消息事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
        {
            ///--删除前做确认
            if (DialogResult.OK != MessageBox.Show("确定删除选中行数据吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
            {
                ///---选择的是取消。
                e.Cancel = true;
            }     
        }
       10,DataGridview隐藏行,列

 ///---隐藏第一行
                dataGridView1.Columns[0].Visible = false;
                ///---第一列
                dataGridView1.Rows[0].Visible = false;
        11,隐藏行头

 ///---隐藏行头
                dataGridView1.RowHeadersVisible = false;
       12,DataGridview的删除

 ///-----删除指定列
                dataGridView1.Columns.Remove("列名");
                ///----删除第3列
                dataGridView1.Columns.RemoveAt(2);
                ///---删除第一行
                dataGridView1.Rows.RemoveAt(0);
      13,删除选中行

 ///---删除指定行
                foreach (DataGridViewRow row in dataGridView1.SelectedRows)
                {
                    if (!row.IsNewRow)
                    {
                        dataGridView1.Rows.Remove(row);
                    }
                }
       14,禁止某列的或者行的Resize

               ///--禁用第一行的Resize
                dataGridView1.Rows[0].Resizable = DataGridviewTriState.False;
                ///---禁用某列的Resize
                dataGridView1.Columns[0].Resizable = DataGridviewTriState.False;
       15,禁止所有的行或者列的Resize

                ///--禁用某行的Resize
                dataGridView1.AllowUserToResizeRows = false;
                ///---禁用某列的Resize
                dataGridView1.AllowUserToResizeColumns = false;
       16,列宽和行宽最小值的设定

                ///---设定第一列宽度最小值为10
                dataGridView1.Columns[0].MinimumWidth = 10;
                ///---设定第一行 的最下高度为10
                dataGridView1.Rows[0].MinimumHeight = 10;
       17,DataGridview冻结列

                ///---冻结列
                ///--左侧的2列被固定
                dataGridView1.Columns[1].Frozen = true;
      注意  DataGridView . AllowUserToOrderColumns = True 时,固定列 不能 移动到非固定列, 反之亦然
      18,行冻结

                ///---行冻结
                ///---设定第一列被冻结
                dataGridView1.Rows[0].Frozen = true;
       19,DataGridview修改行头和列头的单元格的值

///--修改第一列列头的值
                dataGridView1.Columns[0].HeaderCell.Value = "填写要修改的值";
                ///--修改第一行行头的值
                dataGridView1.Rows[0].HeaderCell.Value = "填写要修改的值";
                ///---修改左上部单元格的值
                dataGridView1.TopLeftHeaderCell.Value = "左上";
      20, 通过修改HeaderText的值修改列头的值

                ///--修改第一列头的值
                dataGridView1.Columns[0].HeaderText = "第一列";

           其实,我就想知道,咱们的博客背景能在保证不失去CSDN风格基础上自定义背景不。。。。。

           看到这里的朋友,国庆节 Happy!

           今天10.1,刚刚挑了个时间13:14给晓帅歌电话嘛,结果.........希望我没打扰到TA的雅兴呢,高高兴兴度过7天小长假哈大笑微笑

来自晓帅歌的分享,再次贴出来:

C#windfrom控件之datagridview(一)_第3张图片

你可能感兴趣的:(C#,datagridview,winfrom)