1. 程式人生 > >c# winform 關於DataGridView的一些操作

c# winform 關於DataGridView的一些操作

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Text;
  7 using System.Windows.Forms;
  8 
  9 
 10 
 11 using System.Data.OracleClient;
 12 
 13    
 14 using System.IO;  
 15 using System.Data.OleDb; 
16 17 namespace TestMouseMove 18 { 19 public partial class Form3 : Form 20 { 21 public Form3() 22 { 23 InitializeComponent(); 24 dgvLoad(); 25 } 26 27 public void dgvLoad() 28 { 29 this.DataGridView1.Columns[0
].HeaderCell.Value = "姓名"; 30 this.DataGridView1.Columns[1].HeaderCell.Value = "欄位2"; 31 this.DataGridView1.Columns[2].HeaderCell.Value = "欄位3"; 32 this.DataGridView1.Columns[3].HeaderCell.Value = "欄位4"; 33 this.DataGridView1.Columns[4].HeaderCell.Value = "
欄位5"; 34 35 this.DataGridView1.Rows.Add("黑色頭髮", "1行2列", "1行3列", "1行4列", "1行5列"); 36 this.DataGridView1.Rows.Add("紫色頭髮", "2行2列aaaa", "2行3列", "2行4列", "2行5列"); 37 this.DataGridView1.Rows.Add("藍色頭髮", "3行2列", "3行3列", "3行4列", "3行5列"); 38 this.DataGridView1.Rows.Add("紅色頭髮", "4行2列", "4行3列", "4行4列", "4行5列"); 39 this.DataGridView1.Rows.Add("棕色頭髮", "5行2列", "5行3列", "5行4列", "5行5列"); 40 41 DataGridView1.ShowCellErrors = true; 42 //設定 (0, 0) 的單元格表示 Error圖示 43 DataGridView1[3, 3].ErrorText = "這是單元格提示錯誤資訊,也可以再行頭顯示這個錯誤提示資訊"; 44 45 //設定第4行(Index=3)的行頭顯示Error圖示 46 //DataGridView1.Rows[0].ErrorText = "不能輸入負值。"; 47 } 48 49 private void button1_Click(object sender, EventArgs e) 50 { 51 // 設定 (1, 2) 為當前單元格 52 DataGridView1.CurrentCell = DataGridView1[1, 2]; 53 } 54 55 private void button2_Click(object sender, EventArgs e) 56 { 57 // 取得當前單元格內容 58 MessageBox.Show(DataGridView1.CurrentCell.Value.ToString()); 59 // 取得當前單元格的列 Index 60 MessageBox.Show(DataGridView1.CurrentCell.ColumnIndex.ToString()); 61 // 取得當前單元格的行 Index 62 MessageBox.Show(DataGridView1.CurrentCell.RowIndex.ToString()); 63 } 64 65 /// <summary> 66 /// 向下遍歷 67 /// </summary> 68 /// <param name="sender"></param> 69 /// <param name="e"></param> 70 private void button3_Click(object sender, EventArgs e) 71 { 72 int row = this.DataGridView1.CurrentRow.Index + 1; 73 if (row > this.DataGridView1.RowCount - 1) 74 row = 0; 75 this.DataGridView1.CurrentCell = this.DataGridView1[0, row]; 76 } 77 78 /// <summary> 79 /// 向上遍歷 80 /// </summary> 81 /// <param name="sender"></param> 82 /// <param name="e"></param> 83 private void button4_Click(object sender, EventArgs e) 84 { 85 int row = this.DataGridView1.CurrentRow.Index - 1; 86 if (row < 0) 87 row = this.DataGridView1.RowCount - 1; 88 this.DataGridView1.CurrentCell = this.DataGridView1[0, row]; 89 } 90 91 private void button5_Click(object sender, EventArgs e) 92 { 93 if (DataGridView1.ReadOnly) 94 { 95 // 取消 DataGridView1 為只讀 96 DataGridView1.ReadOnly = false; 97 DataGridView1.DefaultCellStyle.BackColor = Color.White; 98 } 99 else 100 { 101 // 設定 DataGridView1 為只讀 102 DataGridView1.ReadOnly = true; 103 DataGridView1.DefaultCellStyle.BackColor = Color.Gainsboro; 104 } 105 } 106 107 private void button6_Click(object sender, EventArgs e) 108 { 109 if (DataGridView1.Columns[1].ReadOnly) 110 { 111 // 設定 DataGridView1 的第2列整列單元格為只讀並變色 112 DataGridView1.Columns[1].ReadOnly = false; 113 DataGridView1.Columns[1].DefaultCellStyle.BackColor = Color.White; 114 // 設定 DataGridView1 的第3行整行單元格為只讀並變色 115 DataGridView1.Rows[2].ReadOnly = false; 116 DataGridView1.Rows[2].DefaultCellStyle.BackColor = Color.White; 117 // 設定 DataGridView1 的[0,0]單元格為只讀並變色 118 DataGridView1[0, 0].ReadOnly = false; 119 DataGridView1.Rows[0].Cells[0].Style.BackColor = Color.White; 120 } 121 else 122 { 123 // 設定 DataGridView1 的第2列整列單元格為只讀並變色 124 DataGridView1.Columns[1].ReadOnly = true; 125 DataGridView1.Columns[1].DefaultCellStyle.BackColor = Color.Gainsboro; 126 // 設定 DataGridView1 的第3行整行單元格為只讀並變色 127 DataGridView1.Rows[2].ReadOnly = true; 128 DataGridView1.Rows[2].DefaultCellStyle.BackColor = Color.Gainsboro; 129 // 設定 DataGridView1 的[0,0]單元格為只讀並變色 130 DataGridView1[0, 0].ReadOnly = true; 131 DataGridView1.Rows[0].Cells[0].Style.BackColor = Color.Gainsboro; 132 } 133 } 134 135 private void button7_Click(object sender, EventArgs e) 136 { 137 if (DataGridView1.EditMode.Equals(DataGridViewEditMode.EditOnEnter)) 138 { 139 DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically; 140 DataGridView1.DefaultCellStyle.BackColor = Color.Red; 141 } 142 else 143 { 144 DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter; 145 DataGridView1.DefaultCellStyle.BackColor = Color.White; 146 } 147 } 148 149 private void button8_Click(object sender, EventArgs e) 150 { 151 DataGridView1.Rows[DataGridView1.CurrentCell.RowIndex].Cells[DataGridView1.CurrentCell.ColumnIndex].Style.BackColor = Color.White; 152 DataGridView1.BeginEdit(true); 153 } 154 155 private void button9_Click(object sender, EventArgs e) 156 { 157 if (DataGridView1.AllowUserToAddRows) 158 { 159 // 設定使用者不能手動給 DataGridView1 新增新行 160 DataGridView1.AllowUserToAddRows = false; 161 } 162 else 163 { 164 // 設定使用者可以手動給 DataGridView1 新增新行 165 DataGridView1.AllowUserToAddRows = true; 166 } 167 } 168 169 private void button10_Click(object sender, EventArgs e) 170 { 171 if (DataGridView1.AllowUserToDeleteRows) 172 { 173 // 禁止DataGridView1的行刪除操作。 174 DataGridView1.AllowUserToDeleteRows = false; 175 DataGridView1.DefaultCellStyle.BackColor = Color.Wheat; 176 } 177 else 178 { 179 // 允許DataGridView1的行刪除操作。 180 DataGridView1.AllowUserToDeleteRows = true; 181 DataGridView1.DefaultCellStyle.BackColor = Color.White; 182 } 183 } 184 185 private void button11_Click(object sender, EventArgs e) 186 { 187 if (DataGridView1.Columns[0].Visible) 188 { 189 // DataGridView1的第一列隱藏 190 DataGridView1.Columns[0].Visible = false; 191 // DataGridView1的第一行隱藏 192 DataGridView1.Rows[0].Visible = false; 193 } 194 else 195 { 196 // DataGridView1的第一列顯示 197 DataGridView1.Columns[0].Visible = true; 198 // DataGridView1的第一行顯示 199 DataGridView1.Rows[0].Visible = true; 200 } 201 } 202 203 private void button12_Click(object sender, EventArgs e) 204 { 205 if (DataGridView1.ColumnHeadersVisible) 206 { 207 // 列頭隱藏 208 DataGridView1.ColumnHeadersVisible = false; 209 // 行頭隱藏 210 DataGridView1.RowHeadersVisible = false; 211 } 212 else 213 { 214 // 列頭顯示 215 DataGridView1.ColumnHeadersVisible = true; 216 // 行頭顯示 217 DataGridView1.RowHeadersVisible = true; 218 } 219 } 220 221 private void button13_Click(object sender, EventArgs e) 222 { 223 // 刪除名為"Column1"的列 224 DataGridView1.Columns.Remove("Column1"); 225 // 刪除第四列 226 DataGridView1.Columns.RemoveAt(2); 227 // 刪除第三行 228 DataGridView1.Rows.RemoveAt(2); 229 } 230 231 private void button14_Click(object sender, EventArgs e) 232 { 233 foreach (DataGridViewRow r in DataGridView1.SelectedRows) 234 { 235 if (!r.IsNewRow) 236 { 237 DataGridView1.Rows.Remove(r); 238 } 239 } 240 } 241 242 private void button15_Click(object sender, EventArgs e) 243 { 244 if (DataGridView1.AllowUserToResizeColumns) 245 { 246 // 禁止使用者改變DataGridView1的所有列的列寬 247 DataGridView1.AllowUserToResizeColumns = false; 248 //禁止使用者改變DataGridView1的所有行的行高 249 DataGridView1.AllowUserToResizeRows = false; 250 } 251 else 252 { 253 // 允許使用者改變DataGridView1的所有列的列寬 254 DataGridView1.AllowUserToResizeColumns = true; 255 // 允許使用者改變DataGridView1的所有行的行高 256 DataGridView1.AllowUserToResizeRows = true; 257 } 258 } 259 260 private void button16_Click(object sender, EventArgs e) 261 { 262 // 禁止使用者改變DataGridView1的第一列的列寬 263 DataGridView1.Columns[0].Resizable = DataGridViewTriState.False; 264 // 禁止使用者改變DataGridView1的第一列的行寬 265 DataGridView1.Rows[0].Resizable = DataGridViewTriState.False; 266 } 267 268 private void button17_Click(object sender, EventArgs e) 269 { 270 // 第一列的最小列寬設定為 100 271 DataGridView1.Columns[0].MinimumWidth = 200; 272 // 第一行的最小行高設定為 50 273 DataGridView1.Rows[0].MinimumHeight = 50; 274 } 275 276 private void button18_Click(object sender, EventArgs e) 277 { 278 // 禁止使用者改變列頭的高度 279 DataGridView1.ColumnHeadersHeightSizeMode = 280 DataGridViewColumnHeadersHeightSizeMode.DisableResizing; 281 // 禁止使用者改變行頭的寬度 282 DataGridView1.RowHeadersWidthSizeMode = 283 DataGridViewRowHeadersWidthSizeMode.DisableResizing; 284 } 285 286 private void button19_Click(object sender, EventArgs e) 287 { 288 // 設定包括Header和所有單元格的列寬自動調整 289 DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; 290 // 設定包括Header和所有單元格的行高自動調整 291 DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; 292 } 293 294 private void button20_Click(object sender, EventArgs e) 295 { 296 // 第一列自動調整 297 DataGridView1.Columns[0].AutoSizeMode = 298 DataGridViewAutoSizeColumnMode.DisplayedCells; 299 } 300 301 private void button21_Click(object sender, EventArgs e) 302 { 303 // 設定列頭的寬度可以自動調整 304 DataGridView1.ColumnHeadersHeightSizeMode = 305 DataGridViewColumnHeadersHeightSizeMode.AutoSize; 306 // 設定行頭的寬度可以自動調整 307 DataGridView1.RowHeadersWidthSizeMode = 308 DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; 309 } 310 311 private void button22_Click(object sender, EventArgs e) 312 { 313 // 讓 DataGridView1 的所有列寬自動調整一下。 314 DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); 315 } 316 317 private void button23_Click(object sender, EventArgs e) 318 { 319 // 讓 DataGridView1 的第三列的列寬自動調整一下。 320 DataGridView1.AutoResizeColumn(2, DataGridViewAutoSizeColumnMode.AllCells); 321 } 322 323 private void button24_Click(object sender, EventArgs e) 324 { 325 // 讓 DataGridView1 的所有行高自動調整一下。 326 DataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells); 327 //讓 DataGridView1 的第一行的行高自動調整一下。 328 DataGridView1.AutoResizeRow(0, DataGridViewAutoSizeRowMode.AllCells); 329 } 330 331 private void button25_Click(object sender, EventArgs e) 332 { 333 // 列頭高度自動調整 334 DataGridView1.AutoResizeColumnHeadersHeight(); 335 // 行頭寬度自動調整 336 DataGridView1.AutoResizeRowHeadersWidth( 337 DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders); 338 } 339 340 private void button26_Click(object sender, EventArgs e) 341 { 342 // DataGridView1的左側2列固定 343 DataGridView1.Columns[1].Frozen = true; 344 DataGridView1.Columns[2].Width = 800; 345 } 346 347 private void button27_Click(object sender, EventArgs e) 348 { 349 // DataGridView1 的上3行固定 350 DataGridView1.Rows[2].Frozen = true; 351 DataGridView1.Rows[3].Height = 500; 352 } 353 354 private void button28_Click(object sender, EventArgs e) 355 { 356 DataGridView1.AllowUserToOrderColumns = true; 357 } 358 359 private void button29_Click(object sender, EventArgs e) 360 { 361 // 改變DataGridView1的第一列列頭內容 362 DataGridView1.Columns[0].HeaderCell.Value = "第一列"; 363 // 改變DataGridView1的第一行行頭內容 364 DataGridView1.Rows[0].HeaderCell.Value = "第一行"; 365 // 改變DataGridView1的左上頭部單元內容 366 DataGridView1.TopLeftHeaderCell.Value = "左上"; 367 368 // 改變DataGridView1的第二列列頭內容 369 DataGridView1.Columns[1].HeaderText = "第二列"; 370 } 371 372 private void button30_Click(object sender, EventArgs e) 373 { 374 Clipboard.SetDataObject(DataGridView1.GetClipboardContent()); 375 } 376 377 private void button31_Click(object sender, EventArgs e) 378 { 379 //當前單元格是否選擇的判斷 380 if (DataGridView1.CurrentCell == null) 381 { 382 return; 383 } 384 int insertRowIndex = DataGridView1.CurrentCell.RowIndex; 385 int insertColumnsIndex = DataGridView1.CurrentCell.ColumnIndex; 386 // 獲取剪下板的內容,並按行分割 387 string pasteText = Clipboard.GetText(); 388 if (string.IsNullOrEmpty(pasteText)) 389 { 390 return; 391 } 392 pasteText = pasteText.Replace(" ", " "); 393 pasteText = pasteText.Replace(' ', ' '); 394 pasteText.TrimEnd(new char[] { ' ' }); 395 string[] lines = pasteText.Split(' '); 396 bool isHeader = false; 397 foreach (string line in lines) 398 { 399 // 是否是列頭 400 if (isHeader) 401 { 402 isHeader = false; 403 continue; 404 } 405 // 按 Tab 分割資料 406 string[] vals = line.Split(' '); 407 DataGridViewRow row = DataGridView1.Rows[insertRowIndex]; 408 // 行頭設定 409 //row.HeaderCell.Value = vals[0]; 410 // 單元格內容設定 411 for (int i = 0; i < vals.Length; i++) 412 { 413 row.Cells[insertColumnsIndex].Value = vals[i]; 414 } 415 // DataGridView的行索引+1 416 insertRowIndex++; 417 } 418 } 419 420 private void button32_Click(object sender, EventArgs e) 421 { 422 // 設定單元格的ToolTip內容 423 DataGridView1[0, 0].ToolTipText = "該單元格的內容不能修改"; 424 // 設定列頭的單元格的ToolTip內容 425 DataGridView1.Columns[0].ToolTipText = "該列只能輸入數字"; 426 // 設定行頭的單元格的ToolTip內容 427 DataGridView1.Rows[0].HeaderCell.ToolTipText = "該行單元格內容不能修改"; 428 429 DataGridView1.VirtualMode = false; 430 DataGridView1.ShowCellToolTips = true; 431 432 } 433 434 private void DataGridView1_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e) 435 { 436 MessageBox.Show(e.ToolTipText = e.ColumnIndex.ToString() + ", " + e.RowIndex.ToString()); 437 438 } 439 440 private void button33_Click(object sender, EventArgs e) 441 {

相關推薦

C# WinForm DataGridView 給標題列增加序號及格式化某個字段

bin blog bind get end 字段 prop () ring DataGridView 給標題列增加序號 private void dataGridView1_DataBindingComplete(object sender, DataGridView

C# winform DataGridView 常見屬性

調用 button foreach cal left mil style屬性 高性能 使用 C# winform DataGridView 屬性說明① 取得或者修改當前單元格的內容 ② 設定單元格只讀 ③ 不顯示最下面的新行 ④

C# Winform datagridview控制元件加序列號

//增加序列號 //該事件需要在datagridview 控制元件事件裡點出來,直接寫裡面的程式碼即可。 private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)

c# winform DataGridView匯出資料到Excel中,可以匯出當前頁和全部資料

關鍵字: datagridview 匯出 資料 excel 當前頁 全部 準備工作就是可以分頁的DataGridView,和兩個按鈕,一個用來匯出當前頁資料到Excel,一個用來匯出全部資料到Excel 沒有使用SaveFileDialog,但卻可以彈出儲存對話方塊

C# Winform DataGridView實現行[Row]的上下移動........

蠢方法..但是還是蠻實用的...這裡只改變了DataGridView的資料顯示,資料來源DataTable沒有任何改變 /*DataGridView 實現行[Row]的上下移動,我這裡用到了SelectedRows[0],而沒用CurrentRow是有原因的 主要是

C# winform DataGridView中新增按鈕

首先,一頭霧水,百度之。資料如下: 注意:DataGridView控制元件是從.NET Framework 2.0版本開始追加的。 在DataGridView的列中想表示和LinkLabel控制元件一樣的連結時,可以使用DataGridViewLinkColumn來

C#-WinForm-DataGridView展示查詢結果

DataGridView 根據學員班級查詢後臺方法 前臺學員班級查詢方法 DataGridView禁止生成不需要的列 this.dgvStudentList.Auto

C# Winform datagridview控制元件繫結資料來源後列順序混亂

現象描述:                   datagridview控制元件,預設狀態列順序正常。                   單擊查詢按鈕,繫結資料來源後,列順序出現變化。                  (如,正常應該是12345,查詢繫結資料後變為123

C# Winform DataGridView 公共分頁實現

Demo的介面 我利用事件委託事件,仿http://www.cnblogs.com/huyong/寫的公共分頁使用者控制元件 #region  版權資訊 /*-------------------------------------------------------

C# winform資料夾操作複製和刪除

首先需要新增名稱空間: using System.IO; 下面分別有2個刪除方法: /// <summary> /// 刪除資料夾下所有檔案 /// </summary> /// &

c#——Winform DatagridView上顯示下拉樹(二)

除了能夠顯示可下拉的樹,提供選擇。 當樹中資料比較多的時候,我們肯定還希望能夠對樹中內容進行查詢,於是擴充套件繼續 首先需要看上一篇部落格 http://blog.csdn.net/Shiyaru1314/article/details/51920494 基於上一篇這裡再

C# RichTextBox的一些操作:自動換行 設定行間距 調整字型

最近用到richtextbox,一些操作記錄在下面: 1 禁止自動換行   richtextbox1.WordWrap = false;   wordwrap 屬性:指示多行文字控制元件是否在必要時自動換到下一行的開始處; 2 調整字型大小   richtextbox.F

C#Winform:DataGridView 簡單分頁實現

首先用toolstrip控制元件建立一個分頁用的按鈕,如下圖 程式碼: Code 1private DataTable GetDicData()//獲取所有據 2 { 3 BLLB_CommunitDIC bcdicBll = new

c# winform 關於DataGridView一些操作(很全,絕對夠用)

設定欄位名  設定欄位值  設定單元格表示 Error圖示  設定當前單元格  取得當前單元格內容  取得當前單元格的列 Index  取得當前單元格的行 Index  向下一行 

c# winform 關於DataGridView一些操作

1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.

C#中winform DataGridView常用修改點

函數 tab ase 觸發 ont uri tegra 讀取 oid 1.修改列名 一般情況下,從數據庫裏面讀取的列名是英文或者拼音,但是,有時候顯示需要中文,這樣就需要修改列名了。 dgv.Columns[0].HeaderCell.Value="編號"; 或者 dgv.

DataGridView點擊空白處和失去焦點後取消選擇和關閉默認選擇第一行C#Winform

tag info mouse ret first 用戶 blog .cn pre 默認選擇第一行,可以通過窗體的Load事件中調用Datagridview的ClearSelection來取消選擇 也可以設置 Datagridview的CurrentCell = null;

C語言對字符串的一些操作

語言 void cti bsp har AR sign urn spa 1. 字符串中移除一個字符 1 void removeChar(char *str, char c) 2 { 3 char *s = str; 4 int j, k; 5

c# Winform 多線程操作

dst oss vat event component private 過程 pre ini 主要是對一個過程需要的時間很長執行時會出現界面假死的情況 方法1: Application.DoEvents(),這種方法當你拖動窗體時,界面不會假死。但在你拖動時代碼不再執行,也

C#winformdatagridview設置選中行

ntc bind view設置 cell sdn 隱藏 orm dex owin this.dataGridView1.CurrentCell = this.dataGridView1[colIndex, rowIndex];this.dataGridView1.Bindi