• 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 }
  • 相关阅读:
    ansible become与sudo
    GTID 复制、主从不一致跳过操作、快速切换master
    percona toolkit 更新至一致性检查
    oracle ldap (ODEE ODCC)复制概要
    zabbix api 批量添加主机(python3 requests)
    grafana 5.0+ templating变化
    redis sentinel 客户端
    centos7 变更默认mariadb 记录
    python3 float 计算
    企业微信开发记录
  • 原文地址:https://www.cnblogs.com/endv/p/4237915.html
Copyright © 2020-2023  润新知