zoukankan      html  css  js  c++  java
  • DataGridView控件用法合集(四)(转载)

    转载自:http://blog.sina.com.cn/s/blog_59181ec70100cf6u.html~type=v5_one&label=rela_nextarticle

    1. DataGridView中的ContextMenuStrip属性
    2. DataGridView指定滚动框位置
    3. DataGridView手动追加列
    4. DataGridView全体分界线样式设置
    5. DataGridView根据单元格属性更改显示内容
    6. DataGridView新追加行的行高样式设置る
    7. DataGridView新追加行单元格默认值设置

    1.DataGridView中的ContextMenuStrip属性

    [VB.NET]
    'DataGridViewのContextMenuStripを設定する
    DataGridView1.ContextMenuStrip = Me.ContextMenuStrip1
    '列のContextMenuStripを設定する
    DataGridView1.Columns(0).ContextMenuStrip = Me.ContextMenuStrip2
    '列ヘッダーのContextMenuStripを設定する
    DataGridView1.Columns(0).HeaderCell.ContextMenuStrip = Me.ContextMenuStrip2
    '行のContextMenuStripを設定する
    DataGridView1.Rows(0).ContextMenuStrip = Me.ContextMenuStrip3
    'セルのContextMenuStripを設定する
    DataGridView1(1, 0).ContextMenuStrip = Me.ContextMenuStrip4
    [C#]
    //DataGridViewのContextMenuStripを設定する
    DataGridView1.ContextMenuStrip = this.ContextMenuStrip1;
    //列のContextMenuStripを設定する
    DataGridView1.Columns[0].ContextMenuStrip = this.ContextMenuStrip2;
    //列ヘッダーのContextMenuStripを設定する
    DataGridView1.Columns[0].HeaderCell.ContextMenuStrip = this.ContextMenuStrip2;
    //行のContextMenuStripを設定する
    DataGridView1.Rows[0].ContextMenuStrip = this.ContextMenuStrip3;
    //セルのContextMenuStripを設定する
    DataGridView1[0, 1].ContextMenuStrip = this.ContextMenuStrip4;

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

    [VB.NET]
    'CellContextMenuStripNeededイベントハンドラ
    Private Sub DataGridView1_CellContextMenuStripNeeded( ByVal sender As Object, ByVal e As DataGridViewCellContextMenuStripNeededEventArgs) Handles DataGridView1.CellContextMenuStripNeeded
    Dim dgv As DataGridView = CType(sender, DataGridView)
    If e.RowIndex < 0 Then
    '列ヘッダーに表示するContextMenuStripを設定する
    e.ContextMenuStrip = Me.ContextMenuStrip1
    ElseIf e.ColumnIndex < 0 Then
    '行ヘッダーに表示するContextMenuStripを設定する
    e.ContextMenuStrip = Me.ContextMenuStrip2
    ElseIf TypeOf (dgv(e.ColumnIndex, e.RowIndex).Value) Is Integer Then
    'セルが整数型のときに表示するContextMenuStripを変更する
    e.ContextMenuStrip = Me.ContextMenuStrip3
    End If
    End Sub
    [C#]
    //CellContextMenuStripNeededイベントハンドラ
    private void DataGridView1_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e)
    {
    DataGridView dgv = (DataGridView)sender;
    if (e.RowIndex < 0)
    {
    //列ヘッダーに表示するContextMenuStripを設定する
    e.ContextMenuStrip = this.ContextMenuStrip1;
    }
    else if (e.ColumnIndex < 0)
    {
    //行ヘッダーに表示するContextMenuStripを設定する
    e.ContextMenuStrip = this.ContextMenuStrip2;
    }
    else if (dgv[e.ColumnIndex, e.RowIndex].Value is int)
    {
    //セルが整数型のときに表示するContextMenuStripを変更する
    e.ContextMenuStrip = this.ContextMenuStrip3;
    }
    }

    2.DataGridView指定滚动框位置

    [VB.NET]
    '先頭の行までスクロールする
    DataGridView1.FirstDisplayedScrollingRowIndex = 0
    '先頭の列までスクロールする
    DataGridView1.FirstDisplayedScrollingColumnIndex = 0
    [C#]
    //先頭の行までスクロールする
    DataGridView1.FirstDisplayedScrollingRowIndex = 0;
    //先頭の列までスクロールする
    DataGridView1.FirstDisplayedScrollingColumnIndex = 0;

    3.DataGridView手动追加列

    [VB.NET]
    '列が自動的に作成されないようにする
    DataGridView1.AutoGenerateColumns = False
    'データソースを設定する
    DataGridView1.DataSource = BindingSource1
    'DataGridViewTextBoxColumn列を作成する
    Dim textColumn As New DataGridViewTextBoxColumn()
    'データソースの"Column1"をバインドする
    textColumn.DataPropertyName = "Column1"
    '名前とヘッダーを設定する
    textColumn.Name = "Column1"
    textColumn.HeaderText = "Column1"
    '列を追加する
    DataGridView1.Columns.Add(textColumn)
    [C#]
    //列が自動的に作成されないようにする
    DataGridView1.AutoGenerateColumns = false;
    //データソースを設定する
    DataGridView1.DataSource = BindingSource1;
    //DataGridViewTextBoxColumn列を作成する
    DataGridViewTextBoxColumn textColumn = new DataGridViewTextBoxColumn();
    //データソースの"Column1"をバインドする
    textColumn.DataPropertyName = "Column1";
    //名前とヘッダーを設定する
    textColumn.Name = "Column1";
    textColumn.HeaderText = "Column1";
    //列を追加する
    DataGridView1.Columns.Add(textColumn);

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

    [VB.NET]
    'DataGridViewの境界線を3Dにする
    DataGridView1.BorderStyle = BorderStyle.Fixed3D
    [C#]
    //DataGridViewの境界線を3Dにする
    DataGridView1.BorderStyle = BorderStyle.Fixed3D;

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

    [VB.NET]
    'セルの上と左を二重線のくぼんだ境界線にし、下と右を一重線のくぼんだ境界線にする
    DataGridView1.AdvancedCellBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.InsetDouble
    DataGridView1.AdvancedCellBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.Inset
    DataGridView1.AdvancedCellBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Inset
    DataGridView1.AdvancedCellBorderStyle.Left = DataGridViewAdvancedCellBorderStyle.InsetDouble
    [C#]
    //セルの上と左を二重線のくぼんだ境界線にし、下と右を一重線のくぼんだ境界線にする
    DataGridView1.AdvancedCellBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.InsetDouble;
    DataGridView1.AdvancedCellBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.Inset;
    DataGridView1.AdvancedCellBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.Inset;
    DataGridView1.AdvancedCellBorderStyle.Left = DataGridViewAdvancedCellBorderStyle.InsetDouble;

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

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

    [VB.NET]
    'DataGridViewの境界線を3Dにする
    DataGridView1.BorderStyle = BorderStyle.Fixed3D
    [C#]
    //DataGridViewの境界線を3Dにする
    DataGridView1.BorderStyle = BorderStyle.Fixed3D;

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

    [VB.NET]
    'CellFormattingイベントハンドラ
    Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
    Dim dgv As DataGridView = CType(sender, DataGridView)
    'セルの列を確認
    If dgv.Columns(e.ColumnIndex).Name = "Column1" AndAlso TypeOf e.Value Is String Then
    '大文字にして表示する
    Dim str As String = e.Value.ToString()
    e.Value = str.ToUpper()
    'フォーマットの必要がないことを知らせる
    e.FormattingApplied = True
    End If
    End Sub
    [C#]
    //CellFormattingイベントハンドラ
    private void DataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
    DataGridView dgv = (DataGridView)sender;
    //セルの列を確認
    if (dgv.Columns[e.ColumnIndex].Name == "Column1" && e.Value is string)
    {
    //大文字にして表示する
    string str = e.Value.ToString();
    e.Value = str.ToUpper();
    //フォーマットの必要がないことを知らせる
    e.FormattingApplied = true;
    }
    }

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

    行高设置

    [VB.NET]
    '行テンプレートの高さを設定する
    DataGridView1.RowTemplate.Height = 50
    '行の最低の高さを設定する
    DataGridView1.RowTemplate.MinimumHeight = 50
    [C#]
    //行テンプレートの高さを設定する
    DataGridView1.RowTemplate.Height = 50;
    //行の最低の高さを設定する
    DataGridView1.RowTemplate.MinimumHeight = 50;

    样式设置

    [VB.NET]
    '行テンプレートのセルスタイルの背景色を黄色にする
    DataGridView1.DefaultCellStyle.BackColor = Color.Yellow
    [C#]
    //行テンプレートのセルスタイルの背景色を黄色にする
    DataGridView1.DefaultCellStyle.BackColor = Color.Yellow;

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

    [VB.NET]
    'DefaultValuesNeededイベントハンドラ
    Private Sub DataGridView1_DefaultValuesNeeded(ByVal sender As Object, ByVal e As DataGridViewRowEventArgs) Handles DataGridView1.DefaultValuesNeeded
    'セルの既定値を指定する
    e.Row.Cells("Column1").Value = 0
    e.Row.Cells("Column2").Value = "-"
    End Sub
    [C#]
    //DefaultValuesNeededイベントハンドラ
    private void DataGridView1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
    {
    //セルの既定値を指定する
    e.Row.Cells["Column1"].Value = 0;
    e.Row.Cells["Column2"].Value = "-";
    }
  • 相关阅读:
    机器学习十讲学习笔记第四讲
    大三寒假学习进度笔记Day22
    机器学习十讲学习笔记第三讲
    大三寒假学习进度笔记Day21
    机器学习十讲学习笔记第二讲
    大三寒假学习进度笔记Day20
    机器学习十讲学习笔记第一讲
    大三寒假学习进度笔记Day19
    大三寒假学习进度笔记Day18
    大三寒假学习进度笔记Day17
  • 原文地址:https://www.cnblogs.com/MFxxk/p/1656471.html
Copyright © 2011-2022 走看看