Winform窗体学习笔记 第三十七篇 DataGridView 类

1. 在可自定义的网格中显示数据。 

            int columnIndex = dataGridView1.CurrentCell.ColumnIndex;
            int rowIndex = dataGridView1.CurrentCell.RowIndex;
            dataGridView1.CurrentCell = dataGridView1[columnIndex - 1, rowIndex  - 1];                 // 实例[列数, 行数] 可以提取每个cell的值!

2. DataGridView 属性:

  • AllowUserToAddRows:获取或设置一个值,该值指示是否向用户显示添加行的选项。 
  • AllowUserToDeleteRows:获取或设置一个值,该值指示是否允许用户从 DataGridView 中删除行。
  • AllowUserToOrderColumns:获取或设置一个值,该值指示是否允许通过手动对列重新定位。【是否可以左右拖拽】
  • AutoSizeColumnsMode:获取或设置一个值,该值指示如何确定列宽。
       DataGridViewAutoSizeColumnsMode 枚举:
    • AllCells:列宽调整到适合列中所有单元格(包括标头单元格)的内容。
    • AllCellsExceptHeader:列宽调整到适合列中除标头单元格以外所有单元格的内容。
    • DisplayedCells:列宽调整到适合位于屏幕上当前显示的行中的列的所有单元格(包括标头单元格)的内容。
    • DisplayedCellsExceptHeader:列宽调整到适合位于屏幕上当前显示的行中的列的所有单元格(不包括标头单元格)的内容。
    • None:列宽不会自动调整。
    • ColumnHeader:列宽调整到适合列标头单元格的内容。
    • Fill:列宽调整到使所有列宽精确填充控件的显示区域,要求使用水平滚动的目的只是保持列宽大于 DataGridViewColumn.MinimumWidth 属性值。相对列宽由相对 DataGridViewColumn.FillWeight 属性值决定。
  • AutoSizeRowsMode:获取或设置一个值,该值指示如何确定行高。
       DataGridViewAutoSizeRowsMode 枚举:
  • AllowUserToResizeColumns:获取或设置一个值,该值指示用户是否可以调整列的大小。 
  • AllowUserToResizeRows:获取或设置一个值,该值指示用户是否可以调整行的大小。 
  • BackColor:获取或设置控件的背景色。
  • BackgroundColor:获取或设置 DataGridView 的背景色。
  • ClientSize:获取或设置控件的工作区的高度和宽度。 
  • ColumnCount:获取或设置 DataGridView 中显示的列数。 
  • ColumnHeadersBorderStyle:获取应用于列标题的边框样式。 
    • Custom:
    • Single:
    • Raised:
    • Sucken:
    • None:
  • ColumnHeadersDefaultCellStyle:获取或设置默认列标题样式。
       DataGridViewCellStyle 类:表示应用到 DataGridView 控件中的各个单元格的格式设置和样式信息。
  • ColumnHeadersHeight:获取或设置列标题行的高度(以像素为单位) 
  • ColumnHeadersHeightSizeMode:获取或设置一个值,该值指示是否可以调整列标题的高度,以及它是由用户调整还是根据标题的内容自动调整。 
    • EnableResizing:
    • DisableResizing:
    • AutoSize:
  • ColumnHeadersVisible:获取或设置一个值,该值指示是否显示列标题行。 
  • Columns:获取一个包含控件中所有列的集合。
       DataGridViewColumnCollection 类:表示 DataGridView 控件中的 DataGridViewColumn 对象的集合。
    • Remove:从集合中移除列。  
    • RemoveAt:从集合中移除给定索引处的列。
      ' 删除名为"Column1"的列
      DataGridView1.Columns.Remove("Column1");
      ' 删除第一列
      DataGridView1.Columns.RemoveAt(0);
      ' 删除第一行
      DataGridView1.Rows.RemoveAt(0);

       DataGridViewColumn 类:表示 DataGridView 控件中的列。

    • Visible:获取或设置一个值,指示该列是否可见。
    • Resizable:获取或设置一个值,指示该列的大小是否可调。
    • Selected:获取或设置一个值,该值指示带区是否为被选定。 
    • ReadOnly:获取或设置一个值,指示用户是否可以编辑列的单元格。
        dataGridView1.Columns[1].ReadOnly = true;          //第二列只读
    • Width:获取或设置列的当前宽度。 
    • MiniWidth:获取或设置列的最小宽度。
    • Frozen:获取或设置一个指示列是否已被冻结的值。【指示列左侧之间可以互相拖拽,但是不能往有拖拽】
    • HeaderCell:获取或设置表示列标题的 DataGridViewColumnHeaderCell。 
    • HeaderText:获取或设置列标题单元格的标题文本。 
  • CurrentCell:获取或设置当前处于活动状态的单元格。
       DataGridViewCell 类:表示 DataGridView 控件中的单个单元格。 
    • Value:获取或设置与此单元格关联的值。 
    • ColumnIndex:获取此单元格的列索引。 
    • RowIndex:
    • ReadOnly:获取或设置一个值,该值表示是否可以编辑该单元格的数据。 
  • CurrentCellAddress:获取当前处于活动状态的单元格的行索引和列索引。 【返回 Point】
  • CurrentRow:获取包含当前单元格的行。 
       DataGridViewRow 类:表示 DataGridView 控件中的行。
    • Cells:获取用于填充行的单元格集合。
         DataGridViewCellCollection 类:表示 DataGridViewRow 中单元格的集合。
      • Item:获取或设置给定位置处的项。通过 实例[列名 or index] 来实现!
        for (int i = 0; i < selectedRows.Count;i++ )
        {
            DataGridViewRow row = selectedRows[i];
            strOID = row.Cells[2].Value.ToString();  //用索引 index
            OIDList.Add(strOID);
        }
        for (int i = 0; i < selectedRows.Count;i++ )
        {
            DataGridViewRow row = selectedRows[i];
            strOID = row.Cells["CITY_NAME"].Value.ToString();  //用列名称
            OIDList.Add(strOID);
        }

         

      • Count:获取集合中元素的总数。
      • IsReadOnly:获取一个值,该值指示集合是否为只读。
         
    • Visible:隐藏。
    • Visible:获取或设置一个值,指示该列是否可见。
    • Resizable:获取或设置一个值,指示该列的大小是否可调。
    • Selected:获取或设置一个值,该值指示带区是否为被选定。
    • ReadOnly:获取或设置一个值,指示用户是否可以编辑列的单元格。
                  dataGridView1.Rows[1].ReadOnly = true;          //第二行只读
    • Height:获取或设置行的当前高度。
    • MinimumHeight:获取或设置行的最小高度。
    • Frozen:获取或设置一个指示行是否已被冻结的值。
  • DataSource:获取或设置 DataGridView 所显示数据的数据源。  
    清空数据的方法:
    dataGridView1.DataSource = null;

    导入数据的方法:

    复制代码

    //导入数据
                DataTable table = new DataTable();  //首先创建表格
                DataColumn columnID = new DataColumn("ID");  //创建列 ID
                DataColumn columnName = new DataColumn("Name");  //创建列 Name
    
                table.Columns.Add(columnID);  //增加列 ID
                table.Columns.Add(columnName);  //增加列 Name
                for (int i = 1; i < 10; i++)
                {
                    DataRow row = table.NewRow();  //新建行
                    row[0] = i.ToString();        //为该行中的第一列添加值
                    row[1] = "中国" + i.ToString();    //为该行中的第二列添加值
                    table.Rows.Add(row);        //将该行添加到
                }
                dataGridView1.DataSource = table;    //将表加到框架中
                dataGridView1.Columns[0].Width = 40;  //定义列宽
                dataGridView1.ClearSelection();      //清空选择
                dataGridView1.Rows[1].Selected = true;  //选择第二行

    复制代码

  • DefaultCellStyle:在未设置其他单元格样式属性的情况下,获取或设置应用于 DataGridView 中的单元格的默认单元格样式。 
  • EditMode:获取或设置一个值,该值指示如何开始编辑单元格。 
    • EditOnEnter:当单元格接收到焦点时即可开始编辑。在按 Tab 键在行中横向输入值,或按 Enter 键在列中纵向输入值时,此模式非常有用。
    • EditOnKeystroke:当单元格获得焦点时按任意字母数字键开始编辑。
    • EditOnKeystrokeOrF2:当单元格获得焦点时按任意字母数字键或 F2 开始编辑。
    • EditOnF2:当单元格获得焦点时按 F2 开始编辑。此模式将选择点放置在单元格内容的末尾。
    • EditProgrammatically:仅在调用 BeginEdit 方法时开始编辑。 
  • RowCount:获取或设置 DataGridView 中显示的行数。
  • RowHeadersBorderStyle:
  • RowHeadersDefaultCellStyle:
  • RowHeadersVisible:是否显示行头~默认为 true!
  • RowHeadersWidth:
  • RowHeadersWidthSizeMode:
  • Rows:
       DataGridViewRowCollection 类DataGridViewRow 对象的集合。
    • Remove:从集合中移除行。
    • RemoveAt:从集合中移除指定位置处的行。
                  foreach (DataGridViewRow r in dataGridView1.SelectedRows)
                  {
                      if (!r.IsNewRow)
                      {
                          dataGridView1.Rows.Remove(r);
                      }
                  }
  • ReadOnly:获取或设置一个值,该值表示是否可以编辑该单元格的数据。 
  • ScrollBars:获取或设置要在 DataGridView 控件中显示的滚动条的类型。 
  • SelectedCells:获取用户选定的单元格的集合。
  • SelectedColumns:获取用户选定的列的集合。
  • SelectedRows:获取用户选定的行的集合。 
       DataGridViewSelectedRowCollection 类:表示在 DataGridView 中选定的 DataGridViewRow 对象的集合。
    • Item:获取指定索引处的行。就是 实例[i] 的效果。
    • Count:获取集合中元素的总数。选择了几行!
      删除选择的行
      DataGridViewSelectedRowCollection selectRows = dataGridView1.SelectedRows;
      for (int i = 0; i < selectRows.Count;i++ )
      {
          DataGridViewRow row = selectRows[i];
          dataGridView1.Rows.Remove(row);
      }
  • SelectionMode:获取或设置一个值,该值指示如何选择 DataGridView 的单元格。 
    • CellSelect:可以选定一个或多个单元格。
    • FullRowSelect:通过单击行的标头或是该行所包含的单元格选定整个行。
    • FullColumnSelect:通过单击列的标头或该列所包含的单元格选定整个列。
    • RowHeadersSelect:通过单击行的标头单元格选定此行。通过单击某个单元格可以单独选定此单元格。
    • ColumnHeadersSelect:可以通过单击列的标头单元格选定此列。通过单击某个单元格可以单独选定此单元格。
  • ShowCellToolTips:获取或设置一个值,该值指示当鼠标指针停留在单元格上时,是否显示工具提示。
  • SortedColumn:获取 DataGridView 内容的当前排序所依据的列。
  • SortOrder:获取一个值,该值指示是按升序或降序对 DataGridView 控件中的项进行排序,还是不排序。 
    • None:项未排序。
    • Ascending:项按递增顺序排序。
    • Descending:项按递减顺序排序。
  • StandardTab:获取或设置一个值,该值指示按 Tab 键是否会将焦点按 Tab 键顺序移到下一个控件,而不是将焦点移到控件中的下一个单元格。
  • TopLeftHeaderCell:获取或设置位于 DataGridView 控件左上角的标题单元格。 

3. DataGridView 方法:

  • BeginEdit:将当前的单元格置于编辑模式下。 
  • CancelEdit:取消当前选定单元格的编辑模式并丢弃所有更改。 
  • ClearSelection:取消对当前选定的单元格的选择。 
  • CreateColumnsInstance:创建并返回一个新的 DataGridViewColumnCollection。 
  • EndEdit: 提交对当前单元格进行的编辑并结束编辑操作。 
  • GetCellCount:获取满足所提供筛选器的单元格的数目。 

4. DataGridView 事件:

  • CellMouseDown:当鼠标指针位于单元格的边界内时,在用户按鼠标按钮时发生。 
    (object sender, DataGridViewCellMouseEventArgs e)
    • e.ColumnIndex:鼠标点击处的列索引!
    • e.RowIndex:鼠标点击处的行索引!
  • CellMouseMove:
  • CellMouseUp:
  • UserAddedRow:在用户完成向 DataGridView 控件中添加行时发生。
  • UserDeletedRow:在用户完成从 DataGridView 控件中删除行时发生。 
  • UserDeletingRow:在用户从 DataGridView 控件中删除行时发生。 
                if (MessageBox.Show("Sure?", "Warning", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel)
                {
                    e.Cancel = true;         //选择取消,则不删除
                }
  • SelectionChanged:在当前选择出现更改时发生。

※ http://www.cnblogs.com/peterzb/archive/2009/05/29/1491891.html

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页