DataGridView控件用法合集

  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 }
时间: 2024-10-22 03:21:02

DataGridView控件用法合集的相关文章

DataGridView控件用法二:常用属性

通常会设置的DataGridView的属性如下: AllowUserToAddRows - False指示是否向用户显示用于添加行的选项,列标题下面的一行空行将消失.一般让其消失.AllowUserToDeleteRows - False指示是否允许用户从DataGridView删除行.一般不允许.AllowUserToOrderColumns - False指示是否启用手动列重新放置.一般不允许.AllowUserToResizeColumns - True指示用户是否可以调整列的大小.一般允

android开发游记:meterial design 5.0 开源控件整套合集 及使用demo

android 的5.0发布不光google官方给出了一些新控件,同时还给出了一套符合material design风格的设计标准,这套标准将未来将覆盖google所有产品包括pc端,网站,移动端.在android端上陆续出现了许多开源的控件库开始以google的以 material design为指导而设计的新风格控件库,对比了多个库之后这里推荐一套比较齐全且效果比较好的控件库,使用方法和传统控件高度一致,并向下兼容,附上使用方式和demo下载. 效果图: 这是由rey5137发布的mater

DataGridView控件-[引用]

DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特性. 关于本文档: 本文档不准备面面俱到地介绍DataGridView,而是着眼于深入地介绍一些技术点的高级特性. 本文档按逻辑分为5个章节,首先是结构和特性的概览,其次是内置的列/单元格类型的介绍,再次是数据操作相关的内容,然后是主要特性的综述,最后是最佳实践. 大部分章节含有一个"Q &

最佳实践扩展Windows窗体DataGridView控件 .net 4.5 附示例代码

Windows窗体DataGridView控件的性能调优.net 4.5 在处理大量数据时, DataGridView 控制可以消耗大量的内存开销,除非你仔细地使用它. 在客户有限的内存,你可以避免一些这方面的开销,避免内存成本高的特性. 你也可以管理的部分或全部数据维护和检索任务自己使用虚拟模式为了定制的内存使用情况. 在这一节中 最佳实践扩展Windows窗体DataGridView控件 描述如何使用 DataGridView 控制,避免了不必要的内存使用和在处理大量数据时的性能损失. 虚拟

在DataGridView控件中实现冻结列分界线

我们在使用Office Excel的时候,有很多时候需要冻结行或者列.这时,Excel会在冻结的行列和非冻结的区域之间绘制上一条明显的黑线.如下图: (图1) WinForm下的DataGridView控件也能实现类似的冻结行或者列的功能(参见:http://msdn.microsoft.com/zh-cn/library/28e9w2e1(VS.85).aspx) ,但是呢,DataGridView控件默认不会在冻结列或者行的分界处绘制一个明显的分界线,这样的话,最终用户很难注意到当前有列或者

DataGridView控件绑定数据源

前言: 最近听说DataGridView控件能直接绑定数据源.而不用穿越这层那层的忍辱负重.获取数据.真是高兴的屁颠屁颠的.后来一想二狗肯定不会弄.特意写了一个笨蛋版的教程--也算记录生活.欢度端午了.粽子就不送给大家了.但是大家可以找我来要呦!数量有限送完为止!--chenchen --步骤 1 添加控件 2 添加数据源 中间过程就是点下一步就不截图了.最后选择的这个是每次连接获取数据库数据的表和表的字段 3 三个组件意思 Adapter控件:连接数据库获取数据 DataSet:存放获取好的数

一个Winform下DataGridView控件外观的自定义类

一.关于起因 最近非常频繁的使用DataGridView控件,VS提供的Winform下DataGridView的默认样式非常难看.如果做美化处理的话,需要调整的地方非常多,且该控件的很多设置属性非常的晦涩,不是很人性化.每次进行设置都煞费脑筋,并且需要设置的DataGridView控件又比较多,如果手工一个一个调整非常麻烦.如果在每个窗体里逐个一行一行的用代码来设置,会造成代码很凌乱.琐碎,因此我对DataGridView格式设置的常用项封装到一个Helper类,通过这个帮助类可以一步到位完成

流和打印控件用法

流: 1 private void 打开OToolStripMenuItem_Click(object sender, EventArgs e) 2 { 3 openFileDialog1.Filter = "文本文件|*.txt|全部文件|*.*";//规定文件格式,固定写法. 4 DialogResult dr = openFileDialog1.ShowDialog(); 5 if (dr == DialogResult.OK) 6 { 7 label1.Text = openF

困扰已久——DataGridView控件填充数据时自动添加列

    机房重构慢慢的走到了尽头,最近正在进行最后的润色中,今天解决了一个困扰许久但是非常简单的问题.我们在查询上机和充值记录时,用到了DataGridView控件.我们在VB版的机房收费系统中也用过类似的,不过显然没有.NET中如此灵活呀!     在填充数据时,我们分明已经写好了控件的列名,可是在填充数据时,会向DataGridView后面自动增加列,然后填充增加的列的数据,效果如下:    解决方法:        其中,DataPropertyName是绑定的数据源或者数据库中对应的字段