目錄
一、DataGridView控件常用屬性、方法、事件匯總表
1. 常用方法、屬性和事件匯總
二、DataGridView?控件的常用方法調用
1.?DataBind()?方法
2.?Clear()?方法
3.?Refresh()?方法
4.?Sort()?方法
5.?ClearSelection()?方法
6.?BeginEdit()?方法
7.?EndEdit()?方法
8.?CommitEdit()?方法
9.?CancelEdit()?方法
10.?SelectAll()?方法
11.?GetCellCount()?方法
12.?GetColumnCount()?方法
13.?GetRowCount()?方法
14.?HitTest()?方法
15.?AutoResizeColumns()?方法
16.?AutoResizeRows()?方法
17.?Add()?方法
18.?Remove()?方法
19.?Insert()?方法
20.?Copy()?方法
21.?Paste()?方法
22.?Find()?方法
23.?ScrollIntoView()?方法
24.?InvalidateCell()?方法
25.?InvalidateRow()?方法
26.?InvalidateColumn()?方法
27.?Update()?方法
28.?Dispose()?方法
29.?Show()?和?Hide()?方法
30.?BringToFront()?和?SendToBack()?方法
三、DataTable作為DataGridView的數據源示例
1、代碼示例:
2. 代碼說明
3.總結
一、DataGridView控件常用屬性、方法、事件匯總表
DataGridView 是 Windows Forms 中用于顯示和編輯表格數據的強大控件。以下是一些常用的方法、屬性和事件的匯總。
1. 常用方法、屬性和事件匯總
類型 | 名稱 | 描述 |
---|---|---|
屬性 | DataSource | 獲取或設置 DataGridView 的數據源。 |
Columns | 獲取控件中所有列的集合。 | |
Rows | 獲取控件中所有行的集合。 | |
CurrentCell | 獲取或設置當前活動的單元格。 | |
ReadOnly | 獲取或設置一個值,指示用戶是否可以編輯控件的單元格。 | |
AllowUserToAddRows | 獲取或設置一個值,指示是否向用戶顯示添加行的選項。 | |
AllowUserToDeleteRows | 獲取或設置一個值,指示用戶是否可以從控件中刪除行。 | |
SelectionMode | 獲取或設置一個值,指示如何選擇單元格。 | |
MultiSelect | 獲取或設置一個值,指示是否允許用戶一次選擇多個單元格、行或列。 | |
方法 | Refresh() | 強制控件使其工作區無效并立即重繪自己和任何子控件。 |
ClearSelection() | 取消選擇所有選定的單元格。 | |
Sort() | 對 DataGridView 的內容進行排序。 | |
BeginEdit() | 將當前的單元格置于編輯模式。 | |
EndEdit() | 提交對當前單元格的編輯并結束編輯操作。 | |
事件 | CellClick | 在單元格的任何部分被單擊時發生。 |
CellValueChanged | 在單元格的值更改時發生。 | |
RowEnter | 在行接收到輸入焦點時發生。 | |
RowLeave | 在行失去輸入焦點時發生。 | |
SelectionChanged | 在當前選擇更改時發生。 |
二、DataGridView
?控件的常用方法調用
以下是?DataGridView
?控件的各種常用方法的調用過程。
1.?DataBind()
?方法
將數據源綁定到?DataGridView
。
// 創建 DataTable
DataTable dataTable = new DataTable();
dataTable.Columns.Add("ID", typeof(int));
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("Age", typeof(int));// 添加數據
dataTable.Rows.Add(1, "Alice", 23);
dataTable.Rows.Add(2, "Bob", 30);
dataTable.Rows.Add(3, "Charlie", 25);// 綁定數據源
dataGridView1.DataSource = dataTable;
2.?Clear()
?方法
清除?DataGridView
?中的所有行和列。
dataGridView1.Clear();
3.?Refresh()
?方法
刷新?DataGridView
,使其重新繪制并顯示最新的數據。
dataGridView1.Refresh();
4.?Sort()
?方法
對?DataGridView
?中的列進行排序。
// 按 Name 列升序排序
dataGridView1.Sort(dataGridView1.Columns["Name"], ListSortDirection.Ascending);
5.?ClearSelection()
?方法
取消所有選中的單元格、行或列。
dataGridView1.ClearSelection();
6.?BeginEdit()
?方法
將當前單元格置于編輯模式。
// 將第一行第一列的單元格置于編輯模式
dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[0];
dataGridView1.BeginEdit(true);
7.?EndEdit()
?方法
結束當前單元格的編輯并提交更改。
dataGridView1.EndEdit();
8.?CommitEdit()
?方法
提交當前單元格的編輯并應用更改。
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
9.?CancelEdit()
?方法
取消當前單元格的編輯并丟棄更改。
dataGridView1.CancelEdit();
10.?SelectAll()
?方法
選擇?DataGridView
?中的所有單元格。
dataGridView1.SelectAll();
11.?GetCellCount()
?方法
獲取滿足指定狀態的單元格數量。
int selectedCellCount = dataGridView1.GetCellCount(DataGridViewElementStates.Selected);
MessageBox.Show("Selected cells: " + selectedCellCount);
12.?GetColumnCount()
?方法
獲取滿足指定狀態的列的數量。
int visibleColumnCount = dataGridView1.GetColumnCount(DataGridViewElementStates.Visible);
MessageBox.Show("Visible columns: " + visibleColumnCount);
13.?GetRowCount()
?方法
獲取滿足指定狀態的行數。
int selectedRowCount = dataGridView1.GetRowCount(DataGridViewElementStates.Selected);
MessageBox.Show("Selected rows: " + selectedRowCount);
14.?HitTest()
?方法
獲取鼠標點擊位置的單元格信息。
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{var hitTestInfo = dataGridView1.HitTest(e.X, e.Y);MessageBox.Show($"Row: {hitTestInfo.RowIndex}, Column: {hitTestInfo.ColumnIndex}");
}
15.?AutoResizeColumns()
?方法
自動調整列的寬度以適應內容。
dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
16.?AutoResizeRows()
?方法
自動調整行的高度以適應內容。
dataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);
17.?Add()
?方法
動態添加列或行。
// 添加列
dataGridView1.Columns.Add("NewColumn", "New Column");// 添加行
dataGridView1.Rows.Add(4, "David", 28);
18.?Remove()
?方法
動態刪除列或行。
// 刪除列
dataGridView1.Columns.Remove("NewColumn");// 刪除行
dataGridView1.Rows.RemoveAt(0); // 刪除第一行
19.?Insert()
?方法
在指定位置插入行。
// 在第二行插入新行
dataGridView1.Rows.Insert(1, 5, "Eva", 22);
20.?Copy()
?方法
將選中的單元格內容復制到剪貼板。
dataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText;
dataGridView1.SelectAll();
dataGridView1.Copy();
21.?Paste()
?方法
將剪貼板中的內容粘貼到選中的單元格。
dataGridView1.Paste();
22.?Find()
?方法
查找指定列中匹配值的行。
int rowIndex = -1;
foreach (DataGridViewRow row in dataGridView1.Rows)
{if (row.Cells["Name"].Value.ToString() == "Bob"){rowIndex = row.Index;break;}
}
if (rowIndex != -1)
{MessageBox.Show("Found Bob at row: " + rowIndex);
}
23.?ScrollIntoView()
?方法
滾動到指定的單元格。
dataGridView1.ScrollIntoView(dataGridView1.Rows[5].Cells[0]);
24.?InvalidateCell()
?方法
使指定單元格無效并強制重繪。
dataGridView1.InvalidateCell(0, 0); // 使第一行第一列的單元格無效
25.?InvalidateRow()
?方法
使指定行無效并強制重繪。
dataGridView1.InvalidateRow(0); // 使第一行無效
26.?InvalidateColumn()
?方法
使指定列無效并強制重繪。
dataGridView1.InvalidateColumn(0); // 使第一列無效
27.?Update()
?方法
強制重繪控件。
dataGridView1.Update();
28.?Dispose()
?方法
釋放?DataGridView
?占用的資源。
dataGridView1.Dispose();
29.?Show()
?和?Hide()
?方法
顯示或隱藏?DataGridView
。
dataGridView1.Show(); // 顯示
dataGridView1.Hide(); // 隱藏
30.?BringToFront()
?和?SendToBack()
?方法
調整?DataGridView
?的 Z 軸順序。
dataGridView1.BringToFront(); // 置頂
dataGridView1.SendToBack(); // 置底
三、DataTable作為DataGridView的數據源示例
1、代碼示例:
將 DataTable 作為數據源賦值給 DataGridView 控件
using System;
using System.Data;
using System.Windows.Forms;namespace DataGridViewExample
{public partial class Form1 : Form{public Form1(){InitializeComponent();// 創建 DataTableDataTable dataTable = new DataTable();// 添加列dataTable.Columns.Add("ID", typeof(int));dataTable.Columns.Add("Name", typeof(string));dataTable.Columns.Add("Age", typeof(int));// 添加行dataTable.Rows.Add(1, "Alice", 23);dataTable.Rows.Add(2, "Bob", 30);dataTable.Rows.Add(3, "Charlie", 25);// 將 DataTable 賦值給 DataGridView 的數據源dataGridView1.DataSource = dataTable;// 設置 DataGridView 屬性dataGridView1.ReadOnly = true; // 設置為只讀dataGridView1.AllowUserToAddRows = false; // 禁止用戶添加行dataGridView1.AllowUserToDeleteRows = false; // 禁止用戶刪除行dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; // 設置選擇模式為整行選擇dataGridView1.MultiSelect = false; // 禁止多選}private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e){// 處理單元格點擊事件if (e.RowIndex >= 0){DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex];MessageBox.Show("You clicked on: " + row.Cells["Name"].Value.ToString());}}}
}
2. 代碼說明
-
DataTable 創建:首先創建了一個?
DataTable
?對象,并添加了三列(ID、Name、Age)。 -
添加數據:通過?
Rows.Add
?方法向?DataTable
?中添加了三行數據。 -
綁定數據源:將?
DataTable
?賦值給?DataGridView
?的?DataSource
?屬性,這樣數據就會顯示在?DataGridView
?中。 -
設置屬性:設置了?
DataGridView
?的一些常用屬性,如?ReadOnly
、AllowUserToAddRows
、SelectionMode
?等。 -
事件處理:處理了?
CellClick
?事件,當用戶點擊某個單元格時,會彈出一個消息框顯示該行的?Name
?列的值。
3.總結
通過以上代碼示例,可以輕松地將?DataTable
?作為數據源綁定到?DataGridView
?控件,并通過設置屬性和處理事件來實現更復雜的功能。