DataGridView控件用法合集(七)

来源:互联网 发布:网络电视机顶盒你存大 编辑:程序博客网 时间:2024/05/13 08:01


33. DataGridView单元格样式设置

34. DataGridView文字表示位置的设定

35. DataGridView单元格内文字列换行

36. DataGridView单元格DBNull值表示的设定

37. DataGridView单元格样式格式化

38. DataGridView指定单元格颜色设定

39. DataGridView单元格文字字体设置

40. DataGridView根据单元格值设定单元格样式

 

33. DataGridView单元格样式设置

指定行列的样式设定

 [VB.NET]

'インデックス0の列のセルの背景色を水色にする

DataGridView1.Columns(0).DefaultCellStyle.BackColor= Color.Aqua

'インデックス0の行のセルの背景色を薄い灰色にする

DataGridView1.Rows(0).DefaultCellStyle.BackColor= Color.LightGray

 [C#]

//インデックス0の列のセルの背景色を水色にする

DataGridView1.Columns[0].DefaultCellStyle.BackColor= Color.Aqua;

//インデックス0の行のセルの背景色を薄い灰色にする

DataGridView1.Rows[0].DefaultCellStyle.BackColor= Color.LightGray;

奇数行样式设定

 [VB.NET]

'奇数行のセルの背景色を黄緑色にする

DataGridView1.AlternatingRowsDefaultCellStyle.BackColor= Color.GreenYellow

 [C#]

//奇数行のセルの背景色を黄緑色にする

DataGridView1.AlternatingRowsDefaultCellStyle.BackColor= Color.GreenYellow;

行,列表头部的样式设定

 [VB.NET]

'列ヘッダーの背景色をアイボリーにする

DataGridView1.ColumnHeadersDefaultCellStyle.BackColor= Color.Ivory

'行ヘッダーの背景色をライムにする

DataGridView1.RowHeadersDefaultCellStyle.BackColor= Color.Lime

 [C#]

//列ヘッダーの背景色をアイボリーにする

DataGridView1.ColumnHeadersDefaultCellStyle.BackColor= Color.Ivory;

//行ヘッダーの背景色をライムにする

DataGridView1.RowHeadersDefaultCellStyle.BackColor= Color.Lime;

样式的优先顺序

一般单元格的样式优先顺位

DataGridViewCell.Style 

DataGridViewRow.DefaultCellStyle 

DataGridView.AlternatingRowsDefaultCellStyle 

DataGridView.RowsDefaultCellStyle 

DataGridViewColumn.DefaultCellStyle 

DataGridView.DefaultCellStyle 

表头部的样式优先顺位

DataGridViewCell.Style 

DataGridView.RowHeadersDefaultCellStyle 

DataGridView.ColumnHeadersDefaultCellStyle 

DataGridView.DefaultCellStyle 

下例说明

 [VB.NET]

'1列目を水色にする

DataGridView1.Columns(0).DefaultCellStyle.BackColor= Color.Aqua

'全ての列の背景色を黄色にする

DataGridView1.RowsDefaultCellStyle.BackColor= Color.Yellow

'奇数行を黄緑色にする

DataGridView1.AlternatingRowsDefaultCellStyle.BackColor= Color.GreenYellow

'3行目をピンクにする

DataGridView1.Rows(2).DefaultCellStyle.BackColor= Color.Pink

'自身のセルスタイルと継承されたセルスタイルの背景色を取得する

'1列目のセルスタイル

'"[Aqua]""[Aqua]"と表示される

Console.WriteLine(DataGridView1.Columns(0).DefaultCellStyle.BackColor)

Console.WriteLine(DataGridView1.Columns(0).InheritedStyle.BackColor)

'1行目のセルスタイル

'"[Empty]""[Yellow]"と表示される

Console.WriteLine(DataGridView1.Rows(0).DefaultCellStyle.BackColor)

Console.WriteLine(DataGridView1.Rows(0).InheritedStyle.BackColor)

'2行目のセルスタイル

'"[Empty]""[GreenYellow]"と表示される

Console.WriteLine(DataGridView1.Rows(1).DefaultCellStyle.BackColor)

Console.WriteLine(DataGridView1.Rows(1).InheritedStyle.BackColor)

'3行目のセルスタイル

 

'"[Pink]""[Pink]"と表示される

Console.WriteLine(DataGridView1.Rows(2).DefaultCellStyle.BackColor)

Console.WriteLine(DataGridView1.Rows(2).InheritedStyle.BackColor)

'(0, 3)のセルスタイル

'"[Empty]""[Pink]"と表示される

Console.WriteLine(DataGridView1(0,2).Style.BackColor)

Console.WriteLine(DataGridView1(0,2).InheritedStyle.BackColor)

[C#]

//1列目を水色にする

DataGridView1.Columns[0].DefaultCellStyle.BackColor= Color.Aqua;

//全ての列の背景色を黄色にする

DataGridView1.RowsDefaultCellStyle.BackColor= Color.Yellow;

//奇数行を黄緑色にする

DataGridView1.AlternatingRowsDefaultCellStyle.BackColor= Color.GreenYellow;

//3行目をピンクにする

DataGridView1.Rows[2].DefaultCellStyle.BackColor= Color.Pink;

//自身のセルスタイルと継承されたセルスタイルの背景色を取得する

//1列目のセルスタイル

//"[Aqua]""[Aqua]"と表示される

Console.WriteLine(DataGridView1.Columns[0].DefaultCellStyle.BackColor);

Console.WriteLine(DataGridView1.Columns[0].InheritedStyle.BackColor);

//1行目のセルスタイル

//"[Empty]""[Yellow]"と表示される

Console.WriteLine(DataGridView1.Rows[0].DefaultCellStyle.BackColor);

Console.WriteLine(DataGridView1.Rows[0].InheritedStyle.BackColor);

//2行目のセルスタイル

//"[Empty]""[GreenYellow]"と表示される

Console.WriteLine(DataGridView1.Rows[1].DefaultCellStyle.BackColor);

Console.WriteLine(DataGridView1.Rows[1].InheritedStyle.BackColor);

//3行目のセルスタイル

//"[Pink]""[Pink]"と表示される

Console.WriteLine(DataGridView1.Rows[2].DefaultCellStyle.BackColor);

Console.WriteLine(DataGridView1.Rows[2].InheritedStyle.BackColor);

//(0, 3)のセルスタイル

//"[Empty]""[Pink]"と表示される

Console.WriteLine(DataGridView1[0,2].Style.BackColor);

Console.WriteLine(DataGridView1[0,2].InheritedStyle.BackColor);

复数行列的样式设定

[VB.NET]

'奇数列の背景色を変更する

'効率的な方法

Dim cellStyle As NewDataGridViewCellStyle()

cellStyle.BackColor = Color.Yellow

For i As Integer = 0 ToDataGridView1.Columns.Count - 1

   If i Mod 2 = 0 Then

       DataGridView1.Columns(i).DefaultCellStyle = cellStyle

   End If

Next i

'非効率的な方法

For i As Integer = 0 ToDataGridView1.Columns.Count - 1

   If i Mod 2 = 0 Then

       DataGridView1.Columns(i).DefaultCellStyle.BackColor = Color.Yellow

   End If

Next i

[C#]

//奇数列の背景色を変更する

//効率的な方法

DataGridViewCellStyle cellStyle = newDataGridViewCellStyle();

cellStyle.BackColor = Color.Yellow;

for (int i = 0; i <DataGridView1.Columns.Count; i++)

{

   if (i % 2 == 0)

       DataGridView1.Columns[i].DefaultCellStyle = cellStyle;

}

//非効率的な方法

for (int i = 0; i <DataGridView1.Columns.Count; i++)

{

    if (i % 2 == 0)

      DataGridView1.Columns[i].DefaultCellStyle.BackColor = Color.Yellow;

}

34. DataGridView文字表示位置的设定

单元格的设定

[VB.NET]

'"Column1"列のセルのテキストの配置を上下左右とも中央にする

DataGridView1.Columns("Column1").DefaultCellStyle.Alignment= _

   DataGridViewContentAlignment.MiddleCenter

[C#]

//"Column1"列のセルのテキストの配置を上下左右とも中央にする

DataGridView1.Columns["Column1"].DefaultCellStyle.Alignment=

   DataGridViewContentAlignment.MiddleCenter;

表头的设定

[VB.NET]

'"Column1"列のヘッダーのテキストの配置を上下左右とも中央にする

DataGridView1.Columns("Column1").HeaderCell.Style.Alignment= _

   DataGridViewContentAlignment.MiddleCenter

[C#]

//"Column1"列のヘッダーのテキストの配置を上下左右とも中央にする

DataGridView1.Columns["Column1"].HeaderCell.Style.Alignment=

   DataGridViewContentAlignment.MiddleCenter;

35. DataGridView单元格内文字列换行

[VB.NET]

'"Column1"列のセルのテキストを折り返して表示する

DataGridView1.Columns("Column1").DefaultCellStyle.WrapMode= _

   DataGridViewTriState.True

'ヘッダーも折り返して表示するなら、次のようにする

DataGridView1.Columns("Column1").HeaderCell.Style.WrapMode= _

    DataGridViewTriState.True

[C#]

//"Column1"列のセルのテキストを折り返して表示する

DataGridView1.Columns["Column1"].DefaultCellStyle.WrapMode=

   DataGridViewTriState.True;

//ヘッダーも折り返して表示するなら、次のようにする

DataGridView1.Columns["Column1"].HeaderCell.Style.WrapMode=

    DataGridViewTriState.True;

36. DataGridView单元格DBNull值表示的设定

[VB.NET]

DataGridView1.DefaultCellStyle.NullValue ="(指定されていません)"

[C#]

DataGridView1.DefaultCellStyle.NullValue ="(指定されていません)";

单元格内NullValue属性设定的值输入,表示单元格内为Null

[VB.NET]

DataGridView1.DefaultCellStyle.NullValue ="-"

DataGridView1.DefaultCellStyle.DataSourceNullValue= "X"

[C#]

DataGridView1.DefaultCellStyle.NullValue ="-";

DataGridView1.DefaultCellStyle.DataSourceNullValue= "X";

37. DataGridView单元格样式格式化

[VB.NET]

'列のセルのテキストの書式を地域通貨として指定する

DataGridView1.Columns(0).DefaultCellStyle.Format= "c"

DataGridView1.Columns(1).DefaultCellStyle.Format= "c"

'2列目のカルチャを変更する

DataGridView1.Columns(1).DefaultCellStyle.FormatProvider= _

   New System.Globalization.CultureInfo("en-US")

[C#]

//列のセルのテキストの書式を地域通貨として指定する

DataGridView1.Columns[0].DefaultCellStyle.Format= "c";

DataGridView1.Columns[1].DefaultCellStyle.Format= "c";

//2列目のカルチャを変更する

DataGridView1.Columns[1].DefaultCellStyle.FormatProvider=

  new System.Globalization.CultureInfo("en-US");

Format的参数一览(整数)

書式

 説明

 値が"123456"の時

書式なし

 123456

C

 通貨

 /123,456

D

 10進数

 123456

  E

 指数

 1.234560E+005

  F

 固定小数点

 123456.00

  G

 一般

 123456

  N

 数値

 123,456.00

  P

 パーセント

 12,345,600.00%

  R

 ラウンドトリップ

 (エラーが出る)

  X

 16進数

 1E240

  0

   123456

 00000000

   00123456

 ########

   123456

 #,##0

   123,456

  %0

   %12345600

 00.000E0

   12.346E4

  プラス#;マイナス#;ゼロ

    プラス123456

  iの値は「#」です。

    iの値は「123456」です

  Format的参数一览(小数)

書式

 説明

 値が"1.23456789"の時

   書式なし

 1.23456789

  C

 通貨

 /1

D

 10進数

 (エラーが出る)

E

 指数

 1.234568E+000

F

 固定小数点

 1.23

G

 一般

 1.23456789

N

 数値

 1.23

P

 パーセント

 123.46%

R

 ラウンドトリップ

 1.23456789

X

 16進数

 (エラーが出る)

00.0000000000

01.2345678900

##.##########

1.23456789

#,##0.000

1.235

%0.##

%123.46

00.000E0

12.346E-1

プラス#;マイナス#;ゼロ

プラス1.23

dの値は「#.##」です。

dの値は「1.23」です。

38. DataGridView指定单元格颜色设定

 

光标下的单元格颜色自动变换

[VB.NET]

'DataGridView1CellMouseEnterイベントハンドラ

Private Sub DataGridView1_CellMouseEnter(ByValsender As Object, _

       ByVal e As DataGridViewCellEventArgs) _

       Handles DataGridView1.CellMouseEnter

    'ヘッダー以外のセル

   If e.ColumnIndex >= 0 And e.RowIndex >= 0 Then

       Dim dgv As DataGridView = CType(sender, DataGridView)

       'セルスタイルを変更する

       dgv(e.ColumnIndex, e.RowIndex).Style.BackColor = Color.Red

       dgv(e.ColumnIndex, e.RowIndex).Style.SelectionBackColor = Color.Red

   End If

End Sub

'DataGridView1CellMouseLeaveイベントハンドラ

Private Sub DataGridView1_CellMouseLeave(ByValsender As Object, _

       ByVal e As DataGridViewCellEventArgs) _

       Handles DataGridView1.CellMouseLeave

    'ヘッダー以外のセル

   If e.ColumnIndex >= 0 And e.RowIndex >= 0 Then

       Dim dgv As DataGridView = CType(sender, DataGridView)

       'セルスタイルを元に戻す

       'セルスタイルを削除するなら、nullを設定してもよい

       dgv(e.ColumnIndex, e.RowIndex).Style.BackColor = Color.Empty

       dgv(e.ColumnIndex, e.RowIndex).Style.SelectionBackColor = Color.Empty

   End If

End Sub

 [C#]

//DataGridView1CellMouseEnterイベントハンドラ

private voidDataGridView1_CellMouseEnter(object sender,

   DataGridViewCellEventArgs e)

{

   //ヘッダー以外のセル

   if (e.ColumnIndex >= 0 && e.RowIndex >= 0)

    {

       DataGridView dgv = (DataGridView)sender;

        //セルスタイルを変更する

       dgv[e.ColumnIndex, e.RowIndex].Style.BackColor = Color.Red;

       dgv[e.ColumnIndex, e.RowIndex].Style.SelectionBackColor = Color.Red;

    }

}

//DataGridView1CellMouseLeaveイベントハンドラ

private void DataGridView1_CellMouseLeave(objectsender,

   DataGridViewCellEventArgs e)

{

   //ヘッダー以外のセル

   if (e.ColumnIndex >= 0 && e.RowIndex >= 0)

    {

       DataGridView dgv = (DataGridView)sender;

       //セルスタイルを元に戻す

       //セルスタイルを削除するなら、nullを設定してもよい

       dgv[e.ColumnIndex, e.RowIndex].Style.BackColor = Color.Empty;

       dgv[e.ColumnIndex, e.RowIndex].Style.SelectionBackColor = Color.Empty;

    }

}

表头部单元格颜色设定

 [VB.NET]

'列ヘッダーの背景色を黄色にする

DataGridView1.ColumnHeadersDefaultCellStyle.BackColor= Color.Yellow

'行ヘッダーの背景色を黄緑色にする

DataGridView1.RowHeadersDefaultCellStyle.BackColor= Color.YellowGreen

'左上隅のヘッダーセルの背景色を青にする

DataGridView1.TopLeftHeaderCell.Style.BackColor= Color.Blue

 [C#]

//列ヘッダーの背景色を黄色にする

DataGridView1.ColumnHeadersDefaultCellStyle.BackColor= Color.Yellow;

//行ヘッダーの背景色を黄緑色にする

DataGridView1.RowHeadersDefaultCellStyle.BackColor= Color.YellowGreen;

//左上隅のヘッダーセルの背景色を青にする

DataGridView1.TopLeftHeaderCell.Style.BackColor= Color.Blue;

39. DataGridView单元格文字字体设置

光标下单元格字体设置为粗体

 [VB.NET]

'デフォルトのセルスタイル

Private defaultCellStyle AsDataGridViewCellStyle

'マウスポインタの下にあるセルのセルスタイル

Private mouseCellStyle AsDataGridViewCellStyle

'フォームのLoadイベントハンドラ

Private Sub Form1_Load(ByVal sender AsSystem.Object, _

       ByVal e As System.EventArgs) Handles MyBase.Load

    'デフォルトのセルスタイルの設定

   Me.defaultCellStyle = New DataGridViewCellStyle()

    '現在のセルのセルスタイルの設定

   Me.mouseCellStyle = New DataGridViewCellStyle()

   Me.mouseCellStyle.Font = New Font(DataGridView1.Font, _

       DataGridView1.Font.Style Or FontStyle.Bold)

End Sub

'DataGridView1CellMouseEnterイベントハンドラ

Private SubDataGridView1_CellMouseEnter(ByVal sender As Object, _

       ByVal e As DataGridViewCellEventArgs) _

       Handles DataGridView1.CellMouseEnter

    'ヘッダー以外のセル

   If e.ColumnIndex >= 0 And e.RowIndex >= 0 Then

       Dim dgv As DataGridView = CType(sender, DataGridView)

       'セルスタイルを変更する

       dgv(e.ColumnIndex, e.RowIndex).Style = Me.mouseCellStyle

   End If

End Sub

'DataGridView1CellMouseLeaveイベントハンドラ

Private SubDataGridView1_CellMouseLeave(ByVal sender As Object, _

       ByVal e As DataGridViewCellEventArgs) _

       Handles DataGridView1.CellMouseLeave

    'ヘッダー以外のセル

   If e.ColumnIndex >= 0 And e.RowIndex >= 0 Then

       Dim dgv As DataGridView = CType(sender, DataGridView)

       'セルスタイルを元に戻す

       'セルスタイルを削除するなら、nullを設定してもよい

       dgv(e.ColumnIndex, e.RowIndex).Style = Me.defaultCellStyle

   End If

End Sub

 [C#]

//デフォルトのセルスタイル

private DataGridViewCellStyledefaultCellStyle;

//マウスポインタの下にあるセルのセルスタイル

private DataGridViewCellStylemouseCellStyle;

//フォームのLoadイベントハンドラ

private void Form1_Load(object sender,EventArgs e)

{

   //デフォルトのセルスタイルの設定

   this.defaultCellStyle = new DataGridViewCellStyle();

   //現在のセルのセルスタイルの設定

    this.mouseCellStyle= new DataGridViewCellStyle();

   this.mouseCellStyle.Font = new Font(DataGridView1.Font,

       DataGridView1.Font.Style | FontStyle.Bold);

}

//DataGridView1CellEnterイベントハンドラ

private void DataGridView1_CellEnter(objectsender,

   DataGridViewCellEventArgs e)

{

   //ヘッダー以外のセル

   if (e.ColumnIndex >= 0 && e.RowIndex >= 0)

    {

       DataGridView dgv = (DataGridView)sender;

       //セルスタイルを変更する

       dgv[e.ColumnIndex, e.RowIndex].Style = this.mouseCellStyle;

    }

}

//DataGridView1CellLeaveイベントハンドラ

private void DataGridView1_CellLeave(objectsender,

   DataGridViewCellEventArgs e)

{

   //ヘッダー以外のセル

   if (e.ColumnIndex >= 0 && e.RowIndex >= 0)

    {

       DataGridView dgv = (DataGridView)sender;

        //セルスタイルを元に戻す

       //セルスタイルを削除するなら、nullを設定してもよい

       dgv[e.ColumnIndex, e.RowIndex].Style = this.defaultCellStyle;

    }

}

40. DataGridView根据单元格值设定单元格样式

单元格负数情况下显示黄色,0的情况下显示红色

 [VB.NET]

'CellFormattingイベントハンドラ

Private Sub DataGridView1_CellFormatting(ByValsender 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 Integer Then

       Dim val As Integer = CInt(e.Value)

       'セルの値により、背景色を変更する

       If val < 0 Then

           e.CellStyle.BackColor = Color.Yellow

       Else If val = 0 Then

           e.CellStyle.BackColor = Color.Red

       End If

   End If

End Sub

 [C#]

//CellFormattingイベントハンドラ

private voidDataGridView1_CellFormatting(object sender,

   DataGridViewCellFormattingEventArgs e)

{

   DataGridView dgv = (DataGridView)sender;

   //セルの列を確認

   if (dgv.Columns[e.ColumnIndex].Name == "Column1" &&e.Value is int)

    {

       int val = (int)e.Value;

       //セルの値により、背景色を変更する

       if (val < 0)

       {

           e.CellStyle.BackColor = Color.Yellow;

       }

        else if (val == 0)

       {

           e.CellStyle.BackColor = Color.Red;

       }

    }

原创粉丝点击