• DataGridView控件60招(一)


    C#----DataGridView控件60招(一)

    1. DataGridView当前的单元格属性取得、变更

    2. DataGridView编辑属性

    3. DataGridView最下面一列新追加行非表示

    4. DataGridView判断当前选中行是否为新追加的行

    5. DataGridView删除行可否设定

    6. DataGridView行列不表示和删除

    1.当前的单元格属性取得、变更

    [C#]

    '当前选中单元的值

    Console.WriteLine(DataGridView1.CurrentCell.Value)

    '当前列的Index值

     Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex)

    '当前单元的行Index值

    Console.WriteLine(DataGridView1.CurrentCell.RowIndex)

    '将控件中(0, 0)处的值,赋给当前单元格.

    DataGridView1.CurrentCell =DataGridView1[0, 0]

    2.DataGridView编辑属性

    全部单元格编辑属性

    [C#]

    'DataGridView1只读属性

    DataGridView1.ReadOnly = True

    指定行列单元格编辑属性

    [C#]

    DataGridView1.Columns[1]ReadOnly = True

    DataGridView1.Rows[2].ReadOnly = True

    DataGridView1[0, 0].ReadOnly = True

    根据条件判断单元格的编辑属性

    下例中column2的值是True的时候,Column1设为可编辑

     [C#]

    代码

    3.DataGridView最下面一列新追加行非表示

    [C#]

    DataGridView1.AllowUserToAddRows = False

    4.判断当前选中行是否为新追加的行

    [C#]

    if (DataGridView1.CurrentRow.IsNewRow)
    {
           Console.WriteLine("当前行,是新添加的行");
    }
           else
    {
           Console.WriteLine("当前行,不是新添加的行");
    }

    5. DataGridView删除行可否设定

    [C#]

    DataGridView1.AllowUserToDeleteRows = False

    根据条件判断当前行是否要删除

    [C#]

    代码

    6. DataGridView行列不表示和删除

    行列不表示

    [C#]

    'DataGridView1的第一列不表示

    DataGridView1.Columns[0].Visible = False

    'DataGridView1的第一行不表示

    DataGridView1.Rows[0].Visible = False

    行列表头部分不表示

    [C#]

    DataGridView1.ColumnHeadersVisible = False

    DataGridView1.RowHeadersVisible = False

    指定行列删除

    [C#]

    DataGridView1.Columns.Remove("Column1")

    DataGridView1.Columns.RemoveAt(0)

    DataGridView1.Rows.RemoveAt(0)

    选择的行列删除(多行列)

    [C#]

    'DataGridView1删除选中的行

    foreach (DataGridViewRow r in DataGridView1.SelectedRows)
                {
                    if (!r.IsNewRow)
                    {
                        DataGridView1.Rows.Remove(r);
                    }
                }

    C#----DataGridView控件60招(二)

    7. DataGridView行列宽度高度设置为不能编辑

    8. DataGridView行高列幅自动调整

    9. DataGridView指定行列冻结

    10. DataGridView列顺序变更可否设定

    11. DataGridView行复数选择

    12. DataGridView选择的行、列、单元格取得

    7. DataGridView行列宽度高度设置为不能编辑

     [C#]

    'DataGridView1的列的宽设为不能编辑

    DataGridView1.AllowUserToResizeColumns = False

    'DataGridView1的行的高设为不能编辑

    DataGridView1.AllowUserToResizeRows = False

    指定行列宽度高度设置为不能编辑

    [C#]

    'DataGridView1指定列宽度设置为不能编辑

    DataGridView1.Columns[0].Resizable = DataGridViewTriState.False

    'DataGridView1指定行高度设置为不能编辑

    DataGridView1.Rows[0].Resizable = DataGridViewTriState.False

    列幅行高最小值设定

    [C#]

    '列幅最小值设定为100

    DataGridView1.Columns[0].MinimumWidth = 100

    '行高最小值设定为50

    DataGridView1.Rows[0].MinimumHeight = 50

    行列表头部分行高列幅设置为不能编辑

    [C#]

    行列表头部分行高设置为不能编辑  

    DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing

    行列表头部分列幅设置为能编辑

    DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing

    8. DataGridView行高列幅自动调整

    [C#]

    根据内容,列幅自动调整

    DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells

    根据内容,行高自动调整

    DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells

    表头部分行高列幅自动调整

    [C#]

    '表头列高自動調整

    DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize

    '表头行幅自動調整

    DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders

    指定列自动调整

    [C#]

    '指定列的列幅自動調整

    DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells

    9. DataGridView指定行列冻结

    列冻结(当前列以及左侧做所有列)

    [C#]

    'DataGridView1的左側2列固定

    DataGridView1.Columns[1].Frozen = True

    行冻结(当前行以及上部所有行)

    [C#]

    'DataGridView1的上部2行固定

    DataGridView1.Rows[2].Frozen = True

    指定单元格冻结(单元格所在行上部分所有行,列左侧所有列)

    [C#]

    DataGridView1[0, 0]. Frozen = True

    10. DataGridView列顺序变更可否设定

    [C#]

    'DataGridView1的列的位置设定为允许改变

    DataGridView1.AllowUserToOrderColumns = True

    但是如果列冻结的情况下,冻结的部分不能变更到非冻结的部分。

    变更后列位置取得

    [C#]

    '取得列"Column1"現在的位置

    Console.WriteLine(DataGridView1.Columns["Column1"].DisplayIndex)

    '列"Column1"移動到最前面

    DataGridView1.Columns["Column1"].DisplayIndex = 0

    11. DataGridView行复数选择

    不可选择多行

    [C#]

    'DataGridView1不可选择多行

    DataGridView1.MultiSelect = False

    单元格选择的时候默认为选择整行

    [C#]

    '单元格选择的时候默认为选择整行

    DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect

    12. DataGridView选择的行、列、单元格取得

    [C#]

    '输出选择的单元格位置

    Console.WriteLine("选择的单元格位置")

    foreach (DataGridViewCell c in DataGridView1.SelectedCells)

    {

         Console.WriteLine(c.ColumnIndex + "," + c.RowIndex);

    }

    '输出选择的行位置

    Console.WriteLine("选择的行位置")

    foreach (DataGridViewRow r in dgvBeforeStep.SelectedRows)

    {

         Console.WriteLine(r.Index);

    }

    ''输出选择的列位置

    foreach (DataGridViewColumn col in dgvBeforeStep.SelectedColumns)

    {

        Console.WriteLine(col.Index);

    }

    指定行、列、单元格取得

    [C#]

    '(0, 0)的选中

    DataGridView1[0, 0].Selected = True

    'Index为1的行选中

    DataGridView1.Rows[1].Selected = True

    'Index为2的列选中

    DataGridView1.Columns[2].Selected = True

    C#----DataGridView控件60招(三)

    13. DataGridView指定单元格是否表示

    14. DataGridView表头部单元格取得

    15. DataGridView表头部单元格文字列设定

    16. DataGridView选择的部分拷贝至剪贴板

    17.DataGridView粘贴

    18. DataGridView单元格上ToolTip表示设定(鼠标移动到相应单元格上时,弹出说明信息)

    13. DataGridView指定单元格是否表示

    [C#]

    if (DataGridView1 [2,0].Displayed&& DataGridView1 [2,0].Visible)
    {
        DataGridView1.CurrentCell = DataGridView1[2,0];
    }

    14. DataGridView表头部单元格取得

    [C#]

    'DataGridView1第一列表头改变

    DataGridView1.Columns[0].HeaderCell.Value = "第一列"

    'DataGridView1第一行表头改变

    DataGridView1.Rows[0].HeaderCell.Value = "第一行"

    'DataGridView1左上角单元格值改变

    DataGridView1.TopLeftHeaderCell.Value = "左上"

    15. DataGridView表头部单元格文字列设定

    更改列Header表示文字列

    [C#]

    'DataGridView1改变第一列头部单元格文字

    DataGridView1.Columns[0].HeaderText = "第一列"

    更改行Header表示文字列

    [C#]

    'DataGridView1行的头部单元格为序号

    for (int i = 0; i < DataGridView1.Rows.Count-1; i++)
    {
        DataGridView1.Rows[i].HeaderCell.Value=i.ToString();
    }

    '行的宽度自动调节

    DataGridView1.AutoResizeRowHeadersWidth( DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders)

    最左上Header单元格文字列

    [C#]

    '修改最左上单元格

    DataGridView1.TopLeftHeaderCell.Value = "/"

    16. DataGridView选择的部分拷贝至剪贴板

    拷贝模式设定

    [C#]

    DataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText

    选中部分拷贝

    [C#]

    Clipboard.SetDataObject(DataGridView1.GetClipboardContent())

    17.DataGridView粘贴

    [C#]

    代码

    18. DataGridView单元格上ToolTip表示设定(鼠标移动到相应单元格上时,弹出说明信息)

    [C#]

    指定单元格

    DataGridView1[0, 0].ToolTipText = "指定单元格"

    指定列

    DataGridView1.Columns[0].ToolTipText = "指定列"

    指定行

    DataGridView1.Rows[0].HeaderCell.ToolTipText = "指定行"

    CellToolTipTextNeeded事件,在多个单元格使用相同的ToolTips的时候,可以用该事件,下例为显示当前单元格的行号和列号

    [C#]

    'CellToolTipTextNeeded事件


    private void DataGridView1_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e)
    {
        e.ToolTipText = e.RowIndex.ToString() + "," + e.ColumnIndex.ToString();
    }

    C#----DataGridView控件60招(四)

    DataGridView控件用法合集(四)

    19. DataGridView中的ContextMenuStrip属性

    20. DataGridView指定滚动框位置

    21. DataGridView手动追加列

    22. DataGridView全体分界线样式设置

    23. DataGridView根据单元格属性更改显示内容

    24. DataGridView新追加行的行高样式设置る

    25. DataGridView新追加行单元格默认值设置

    19. DataGridView中的ContextMenuStrip属性

    [C#]

    DataGridView1.ContextMenuStrip = this.ContextMenuStrip1

    DataGridView1.Columns[0)].ContextMenuStrip = this.ContextMenuStrip2

    DataGridView1.Columns[0].HeaderCell.ContextMenuStrip = this.ContextMenuStrip2

    DataGridView1.Rows[0].ContextMenuStrip = this.ContextMenuStrip3

    DataGridView1[1, 0].ContextMenuStrip = this.ContextMenuStrip4

    也可以用CellContextMenuStripNeeded、RowContextMenuStripNeeded属性进行定义

    [C#]

     1 private void DataGridView1_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e)
     2 {
     3     if (e.RowIndex<0)
     4     {
     5         e.ContextMenuStrip = this.contextMenuStrip1;
     6     }
     7     else if (e.ColumnIndex<0)
     8     {
     9         e.ContextMenuStrip = this.contextMenuStrip2;
    10     }
    11 }
    12 

    20. DataGridView指定滚动框位置

    [C#]

    DataGridView1.FirstDisplayedScrollingRowIndex = 0

    DataGridView1.FirstDisplayedScrollingColumnIndex = 0

    21. DataGridView手动追加列

    [C#]

    DataGridView1.AutoGenerateColumns = False

    DataGridView1.DataSource = BindingSource1

    DataGridViewTextBoxColumn textColumn=new DataGridViewTextBoxColumn()

    textColumn.DataPropertyName = "Column1"

    textColumn.Name = "Column1"

    textColumn.HeaderText = "Column1"

    DataGridView1.Columns.Add(textColumn)

    22. DataGridView全体分界线样式设置

    [C#]

    DataGridView1.BorderStyle = BorderStyle.Fixed3D

    单元格上下左右分界线样式设置

    [C#]

    DataGridView1.AdvancedCellBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.InsetDouble

    DataGridView1.AdvancedCellBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.Inset

    DataGridView1.AdvancedCellBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Inset

    DataGridView1.AdvancedCellBorderStyle.Left = DataGridViewAdvancedCellBorderStyle.InsetDouble

    23. DataGridView根据单元格属性更改显示内容

    如下例,当该列是字符串时,自动转换文字大小写

    [C#]

    if (DataGridView1.Columns[e.ColumnIndex].Name.Equals("Column1") && e.Value.GetType().Equals("String"))
    {
        string str = e.Value.ToString();
        e.Value = str.ToUpper();
        e.FormattingApplied = true;
    }

    24. DataGridView新追加行的行高样式设置

    行高设置

    [C#]

    DataGridView1.RowTemplate.Height = 50

    DataGridView1.RowTemplate.MinimumHeight = 50

    样式设置

    [C#]

    '设置背景色为黄色

    DataGridView1.DefaultCellStyle.BackColor = Color.Yellow

    25. DataGridView新追加行单元格默认值设置

    [C#]

    private void DataGridView1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
    {
        e.Row.Cells["Column1"].Value = 0;
        e.Row.Cells["Column2"].Value = "-";
    }
  • 相关阅读:
    lua类对象
    toLua初始化碰到的问题
    Unity经验之谈-DoTween动画结束匿名委托闭包之坑
    toLua关于委托没有注册的解决方案
    xLua使用require改变路径加载Lua脚本
    unity常用的比较函数
    Shader中颜色混合的算法
    UnityShader中插值平滑曲线
    Shader中的Uniforms(只读标识)
    ShaderLab中Properties语义块支持的属性类型
  • 原文地址:https://www.cnblogs.com/skyhorseyk/p/8057471.html
Copyright © 2020-2023  润新知