DataGridView控制元件用法合集

Endv發表於2015-01-21
  1 using System;
  2 using System.Collections.Generic;
  3 using System.Drawing;
  4 using System.Linq;
  5 using System.Text;
  6 using System.Threading.Tasks;
  7 using System.Windows.Forms;
  8 
  9 namespace Formes
 10 {
 11 
 12     //*DataGridView控制元件用法合集 */
 13     class DataGridView控制元件用法合集 : System.Windows.Forms.Form
 14     {
 15         //    public DataGridView dataGridView1 = new DataGridView();
 16         //    protected override void OnLofdad(EventArgs e)
 17         //    {
 18 
 19 
 20         //        this.AutoSize = true;
 21         //        this.Controls.Add(this.dataGridView1);
 22         //        this.Text = "DataGridView virtual-mode just-in-time demo";
 23 
 24         //        // Complete the initialization of the DataGridView. 
 25         //        this.dataGridView1.Size = new Size(800, 250);
 26         //        this.dataGridView1.Dock = DockStyle.Fill;
 27         //        this.dataGridView1.VirtualMode = true;
 28         //        this.dataGridView1.ReadOnly = true;
 29         //        this.dataGridView1.AllowUserToAddRows = false;
 30         //        this.dataGridView1.AllowUserToOrderColumns = false;
 31         //        this.dataGridView1.SelectionMode =
 32         //            DataGridViewSelectionMode.FullRowSelect;
 33         //    }
 34         protected void OnLodad()
 35         {
 36 
 37             #region
 38             //  1. DataGridView當前的單元格屬性取得、變更
 39 
 40             //2. DataGridView編輯屬性
 41 
 42             //3. DataGridView最下面一列新追加行非表示
 43 
 44             //4. DataGridView判斷當前選中行是否為新追加的行
 45 
 46             //5. DataGridView刪除行可否設定
 47 
 48             //6. DataGridView行列不表示和刪除
 49 
 50             #endregion
 51 
 52             #region 1.當前的單元格屬性取得、變更
 53 
 54             //[C#]
 55 
 56             //'當前選中單元的值
 57 
 58             //Console.WriteLine(this.DataGridView1.CurrentCell.Value);
 59 
 60             ////'當前列的Index值
 61 
 62             //Console.WriteLine(this.DataGridView1.CurrentCell.ColumnIndex);
 63 
 64             //'當前單元的行Index值
 65 
 66             //Console.WriteLine(DataGridView1.CurrentCell.RowIndex)
 67 
 68             //'將控制元件中(0, 0)處的值,賦給當前單元格.
 69 
 70             //DataGridView1.CurrentCell = DataGridView1[0, 0]
 71 
 72             #endregion
 73 
 74             #region 2.DataGridView編輯屬性
 75 
 76             //全部單元格編輯屬性
 77 
 78             //[C#]
 79 
 80             //'DataGridView1只讀屬性
 81 
 82             //DataGridView1.ReadOnly = True
 83 
 84             //指定行列單元格編輯屬性
 85 
 86             //[C#]
 87 
 88 
 89 
 90             //DataGridView1.Columns[1]ReadOnly = True
 91 
 92 
 93 
 94             //DataGridView1.Rows[2].ReadOnly = True
 95 
 96 
 97 
 98             //DataGridView1[0, 0].ReadOnly = True
 99 
100             //根據條件判斷單元格的編輯屬性
101 
102             //下例中column2的值是True的時候,Column1設為可編輯
103 
104             // [C#]
105 
106 
107 
108             //程式碼
109 
110 
111 
112 
113             #endregion
114 
115             #region 3.DataGridView最下面一列新追加行非表示
116 
117             //[C#]
118 
119 
120 
121             //DataGridView1.AllowUserToAddRows = False
122 
123             #endregion
124 
125             #region 4.判斷當前選中行是否為新追加的行
126 
127             //[C#]
128 
129             //if (DataGridView1.CurrentRow.IsNewRow)
130             //{
131             //       Console.WriteLine("當前行,是新新增的行");
132             //}
133             //       else
134             //{
135             //       Console.WriteLine("當前行,不是新新增的行");
136             //}
137 
138             #endregion
139 
140             #region 5. DataGridView刪除行可否設定
141 
142             //[C#]
143 
144 
145 
146             //DataGridView1.AllowUserToDeleteRows = False
147 
148             //根據條件判斷當前行是否要刪除
149 
150             //[C#]
151 
152 
153 
154 
155 
156             //複製程式碼
157             //程式碼
158             // 1 private void DataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
159             // 2         {
160             // 3 
161             // 4 
162             // 5 
163             // 6             if (MessageBox.Show("確定要刪除嗎?", "刪除確認", MessageBoxButtons.OKCancel, MessageBoxIcon.Question).Equals(System.Windows.Forms.DialogResult.OK))
164             // 7             {
165             // 8 
166             // 9             }
167             //10             else
168             //11             {
169             //12                 e.Cancel = true;
170             //13             }
171             //14         }
172             //複製程式碼
173 
174 
175 
176 
177             #endregion
178 
179             #region 6. DataGridView行列不表示和刪除
180 
181             //行列不表示
182 
183             //[C#]
184 
185             //'DataGridView1的第一列不表示
186 
187             //DataGridView1.Columns[0].Visible = False
188 
189             //'DataGridView1的第一行不表示
190 
191             //DataGridView1.Rows[0].Visible = False
192 
193             //行列表頭部分不表示
194 
195             //[C#] 
196             //DataGridView1.ColumnHeadersVisible = False
197 
198 
199 
200             //DataGridView1.RowHeadersVisible = False
201 
202             //指定行列刪除
203 
204             //[C#]
205 
206 
207 
208             //DataGridView1.Columns.Remove("Column1")
209 
210 
211 
212             //DataGridView1.Columns.RemoveAt(0)
213 
214 
215 
216             //DataGridView1.Rows.RemoveAt(0)
217 
218             //選擇的行列刪除(多行列)
219 
220             //[C#]
221 
222             //'DataGridView1刪除選中的行
223 
224             //foreach (DataGridViewRow r in DataGridView1.SelectedRows)
225             //            {
226             //                if (!r.IsNewRow)
227             //                {
228             //                    DataGridView1.Rows.Remove(r);
229             //                }
230             //            }
231 
232             #endregion
233 
234             #region 7. DataGridView行列寬度高度設定為不能編輯
235 
236             //8. DataGridView行高列幅自動調整
237 
238             //9. DataGridView指定行列凍結
239 
240             //10. DataGridView列順序變更可否設定
241 
242             //11. DataGridView行復數選擇
243 
244             //12. DataGridView選擇的行、列、單元格取得
245 
246 
247 
248             #endregion
249 
250             #region 7. DataGridView行列寬度高度設定為不能編輯
251 
252             // [C#]
253 
254             //'DataGridView1的列的寬設為不能編輯
255 
256             //DataGridView1.AllowUserToResizeColumns = False
257 
258             //'DataGridView1的行的高設為不能編輯
259 
260             //DataGridView1.AllowUserToResizeRows = False
261 
262             //指定行列寬度高度設定為不能編輯
263 
264             //[C#]
265 
266             //'DataGridView1指定列寬度設定為不能編輯
267 
268             //DataGridView1.Columns[0].Resizable = DataGridViewTriState.False
269 
270             //'DataGridView1指定行高度設定為不能編輯
271 
272             //DataGridView1.Rows[0].Resizable = DataGridViewTriState.False
273 
274             //列幅行高最小值設定
275 
276             //[C#]
277 
278             //'列幅最小值設定為100
279 
280             //DataGridView1.Columns[0].MinimumWidth = 100
281 
282             //'行高最小值設定為50
283 
284             //DataGridView1.Rows[0].MinimumHeight = 50
285 
286             //行列表頭部分行高列幅設定為不能編輯
287 
288             //[C#]
289 
290             //行列表頭部分行高設定為不能編輯
291 
292             //DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing
293 
294             //行列表頭部分列幅設定為能編輯
295 
296             //DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing
297 
298             #endregion
299 
300             #region 8.DataGridView行高列幅自動調整
301 
302             //[C#]
303 
304             //根據內容, 列幅自動調整
305 
306             //DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
307 
308             //根據內容, 行高自動調整
309 
310             //DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
311 
312             //表頭部分行高列幅自動調整
313 
314             //[C#]
315 
316             //'表頭列高自動調整
317 
318             //DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize
319 
320             //'表頭行幅自動調整
321 
322             //DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders
323 
324             //指定列自動調整
325 
326             //[C#]
327 
328             //'指定列的列幅自動調整
329 
330             //DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
331 
332             #endregion
333 
334             #region 9.DataGridView指定行列凍結
335 
336             //列凍結(當前列以及左側做所有列)
337 
338             //[C#]
339 
340             //'DataGridView1的左側2列固定
341 
342             //DataGridView1.Columns[1].Frozen = True
343 
344             //行凍結(當前行以及上部所有行)
345 
346             //[C#]
347 
348             //'DataGridView1的上部2行固定
349 
350             //DataGridView1.Rows[2].Frozen = True
351 
352             //指定單元格凍結(單元格所在行上部分所有行,列左側所有列)
353 
354             //[C#]
355 
356             //DataGridView1[0, 0].Frozen = True
357 
358             #endregion
359 
360             #region 10.DataGridView列順序變更可否設定
361 
362             //[C#]
363 
364             //'DataGridView1的列的位置設定為允許改變
365 
366             //DataGridView1.AllowUserToOrderColumns = True
367 
368             //但是如果列凍結的情況下,凍結的部分不能變更到非凍結的部分。
369 
370             //變更後列位置取得
371 
372             //[C#]
373 
374             //'取得列"Column1"現在的位置
375 
376             //Console.WriteLine(DataGridView1.Columns["Column1"].DisplayIndex)
377 
378             //'列"Column1"移動到最前面
379 
380             //DataGridView1.Columns["Column1"].DisplayIndex = 0
381 
382             #endregion
383 
384 
385             #region 11.DataGridView行復數選擇
386 
387             //不可選擇多行
388 
389             //[C#]
390 
391             //'DataGridView1不可選擇多行
392 
393             //DataGridView1.MultiSelect = False
394 
395             //單元格選擇的時候預設為選擇整行
396 
397             //[C#]
398 
399             //'單元格選擇的時候預設為選擇整行
400 
401             //DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
402 
403             #endregion
404 
405             #region 12.DataGridView選擇的行、列、單元格取得
406 
407             //[C#]
408 
409             //'輸出選擇的單元格位置
410 
411             //Console.WriteLine("選擇的單元格位置")
412 
413             //foreach (DataGridViewCell c in DataGridView1.SelectedCells)
414 
415             //{
416 
417             //     Console.WriteLine(c.ColumnIndex + "," + c.RowIndex);
418 
419             //}
420 
421             //'輸出選擇的行位置
422 
423             //Console.WriteLine("選擇的行位置")
424 
425             //foreach (DataGridViewRow r in dgvBeforeStep.SelectedRows)
426 
427             //{
428 
429             //     Console.WriteLine(r.Index);
430 
431             //}
432 
433             //''輸出選擇的列位置
434 
435             //foreach (DataGridViewColumn col in dgvBeforeStep.SelectedColumns)
436 
437             //{
438 
439             //    Console.WriteLine(col.Index);
440 
441             //}
442 
443             //指定行、列、單元格取得
444 
445             //[C#]
446 
447             //'(0, 0)的選中
448 
449             //DataGridView1[0, 0].Selected = True
450 
451             //'Index為1的行選中
452 
453             //DataGridView1.Rows[1].Selected = True
454 
455             //'Index為2的列選中
456 
457             //DataGridView1.Columns[2].Selected = True
458 
459             #endregion
460 
461             #region 13.DataGridView指定單元格是否表示
462 
463             //14.DataGridView表頭部單元格取得
464 
465             //15.DataGridView表頭部單元格文字列設定
466 
467             //16.DataGridView選擇的部分拷貝至剪貼簿
468 
469             //17.DataGridView貼上
470 
471             //18.DataGridView單元格上ToolTip表示設定(滑鼠移動到相應單元格上時,彈出說明資訊)
472 
473 
474 
475             #endregion
476 
477             #region 13.DataGridView指定單元格是否表示
478 
479             //[C#]
480 
481 
482 
483             //if (DataGridView1[2, 0].Displayed && DataGridView1[2, 0].Visible)
484             //{
485             //    DataGridView1.CurrentCell = DataGridView1[2, 0];
486             //}
487 
488 
489             #endregion
490 
491             #region 14. DataGridView表頭部單元格取得
492 
493             //[C#]
494 
495             //'DataGridView1第一列表頭改變
496 
497             //DataGridView1.Columns[0].HeaderCell.Value = "第一列"
498 
499             //'DataGridView1第一行表頭改變
500 
501             //DataGridView1.Rows[0].HeaderCell.Value = "第一行"
502 
503             //'DataGridView1左上角單元格值改變
504 
505             //DataGridView1.TopLeftHeaderCell.Value = "左上"
506 
507             #endregion
508 
509             #region 15.DataGridView表頭部單元格文字列設定
510 
511             //更改列Header表示文字列
512 
513             //[C#]
514 
515             //'DataGridView1改變第一列頭部單元格文字
516 
517             //DataGridView1.Columns[0].HeaderText = "第一列"
518 
519             //更改行Header表示文字列
520 
521             //[C#]
522 
523             //'DataGridView1行的頭部單元格為序號
524 
525 
526 
527             //for (int i = 0; i<DataGridView1.Rows.Count-1; i++)
528             //{
529             //    DataGridView1.Rows[i].HeaderCell.Value=i.ToString();
530             //}
531 
532 
533             //'行的寬度自動調節
534 
535             //DataGridView1.AutoResizeRowHeadersWidth( DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders)
536 
537             //最左上Header單元格文字列
538 
539             //[C#]
540 
541             //'修改最左上單元格
542 
543             //DataGridView1.TopLeftHeaderCell.Value = "/"
544 
545             #endregion
546 
547             #region 16.DataGridView選擇的部分拷貝至剪貼簿
548 
549             //拷貝模式設定
550 
551             //[C#]
552 
553             //DataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText
554 
555             //選中部分拷貝
556 
557             //[C#]
558 
559             //Clipboard.SetDataObject(DataGridView1.GetClipboardContent())
560 
561             #endregion
562 
563             #region 17.DataGridView貼上
564 
565             //[C#]
566 
567 
568 
569             //程式碼
570 
571 
572             #endregion
573 
574             #region 18.DataGridView單元格上ToolTip表示設定(滑鼠移動到相應單元格上時,彈出說明資訊)
575 
576             //[C#]
577 
578             //指定單元格
579 
580             //DataGridView1[0, 0].ToolTipText = "指定單元格"
581 
582             //指定列
583 
584             //DataGridView1.Columns[0].ToolTipText = "指定列"
585 
586             //指定行
587 
588             //DataGridView1.Rows[0].HeaderCell.ToolTipText = "指定行"
589 
590             //CellToolTipTextNeeded事件,在多個單元格使用相同的ToolTips的時候,可以用該事件,下例為顯示當前單元格的行號和列號
591 
592             //[C#]
593 
594             //'CellToolTipTextNeeded事件
595 
596 
597 
598             //private void DataGridView1_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e)
599             //{
600             //    e.ToolTipText = e.RowIndex.ToString() + "," + e.ColumnIndex.ToString();
601             //}
602 
603 
604             #endregion
605 
606             #region 19. DataGridView中的ContextMenuStrip屬性
607 
608             //20. DataGridView指定滾動框位置
609 
610             //21. DataGridView手動追加列
611 
612             //22. DataGridView全體分界線樣式設定
613 
614             //23. DataGridView根據單元格屬性更改顯示內容
615 
616             //24. DataGridView新追加行的行高樣式設定る
617 
618             //25. DataGridView新追加行單元格預設值設定
619 
620 
621 
622             #endregion
623 
624             #region 19. DataGridView中的ContextMenuStrip屬性
625 
626             //[C#]
627 
628             //DataGridView1.ContextMenuStrip = this.ContextMenuStrip1
629 
630             //DataGridView1.Columns[0)].ContextMenuStrip = this.ContextMenuStrip2
631 
632             //DataGridView1.Columns[0].HeaderCell.ContextMenuStrip = this.ContextMenuStrip2
633 
634             //DataGridView1.Rows[0].ContextMenuStrip = this.ContextMenuStrip3
635 
636             //DataGridView1[1, 0].ContextMenuStrip = this.ContextMenuStrip4
637 
638             //也可以用CellContextMenuStripNeeded、RowContextMenuStripNeeded屬性進行定義
639 
640             //[C#]
641 
642 
643 
644             //複製程式碼
645             // 1 private void DataGridView1_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e)
646             // 2 {
647             // 3     if (e.RowIndex<0)
648             // 4     {
649             // 5         e.ContextMenuStrip = this.contextMenuStrip1;
650             // 6     }
651             // 7     else if (e.ColumnIndex<0)
652             // 8     {
653             // 9         e.ContextMenuStrip = this.contextMenuStrip2;
654             //10     }
655             //11 }
656             //12 
657             //複製程式碼
658 
659 
660             #endregion
661 
662             #region 20. DataGridView指定滾動框位置
663 
664             //[C#]
665 
666             //DataGridView1.FirstDisplayedScrollingRowIndex = 0
667 
668             //DataGridView1.FirstDisplayedScrollingColumnIndex = 0
669 
670             #endregion
671 
672             #region 21.DataGridView手動追加列
673 
674             //[C#]
675 
676             //DataGridView1.AutoGenerateColumns = False
677 
678             //DataGridView1.DataSource = BindingSource1
679 
680             //DataGridViewTextBoxColumn textColumn = new DataGridViewTextBoxColumn()
681 
682             //textColumn.DataPropertyName = "Column1"
683 
684             //textColumn.Name = "Column1"
685 
686             //textColumn.HeaderText = "Column1"
687 
688             //DataGridView1.Columns.Add(textColumn)
689 
690             #endregion
691 
692             #region 22.DataGridView全體分界線樣式設定
693 
694             //[C#]
695 
696             //DataGridView1.BorderStyle = BorderStyle.Fixed3D
697 
698             //單元格上下左右分界線樣式設定
699 
700             //[C#]
701 
702             //DataGridView1.AdvancedCellBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.InsetDouble
703 
704             //DataGridView1.AdvancedCellBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.Inset
705 
706             //DataGridView1.AdvancedCellBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Inset
707 
708             //DataGridView1.AdvancedCellBorderStyle.Left = DataGridViewAdvancedCellBorderStyle.InsetDouble
709 
710             #endregion
711 
712             #region 23.DataGridView根據單元格屬性更改顯示內容
713 
714             //如下例,當該列是字串時,自動轉換文字大小寫
715 
716             //[C#]
717 
718 
719 
720             //複製程式碼
721             //if (DataGridView1.Columns[e.ColumnIndex].Name.Equals("Column1") && e.Value.GetType().Equals("String"))
722             //{
723             //    string str = e.Value.ToString();
724             //e.Value = str.ToUpper();
725             //    e.FormattingApplied = true;
726             //}
727             //複製程式碼
728 
729 
730             #endregion
731 
732             #region 24. DataGridView新追加行的行高樣式設定
733 
734             ////行高設定
735 
736             ////[C#]
737 
738             //DataGridView1.RowTemplate.Height = 50
739 
740             //DataGridView1.RowTemplate.MinimumHeight = 50
741 
742             //樣式設定
743 
744             //[C#]
745 
746             //'設定背景色為黃色
747 
748             //DataGridView1.DefaultCellStyle.BackColor = Color.Yellow
749 
750             #endregion
751 
752             #region 25.DataGridView新追加行單元格預設值設定
753 
754             //[C#]
755             #endregion
756 
757         }
758     }
759 }

 

相關文章