19. DataGridView中的ContextMenuStrip属性
20. DataGridView指定滚动框位置
21. DataGridView手动追加列
22. DataGridView全体分界线样式设置
23. DataGridView根据单元格属性更改显示内容
24. DataGridView新追加行的行高样式设置る
25. DataGridView新追加行单元格默认值设置
19.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;
}
}
20. DataGridView指定滚动框位置
[VB.NET]
'先頭の行までスクロールする
DataGridView1.FirstDisplayedScrollingRowIndex = 0
'先頭の列までスクロールする
DataGridView1.FirstDisplayedScrollingColumnIndex = 0
[C#]
//先頭の行までスクロールする
DataGridView1.FirstDisplayedScrollingRowIndex = 0;
//先頭の列までスクロールする
DataGridView1.FirstDisplayedScrollingColumnIndex = 0;
21. 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);
22. 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;
23. DataGridView根据单元格属性更改显示内容
如下例,当该列是字符串时,自动转换文字大小写
[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;
}
}
24. 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;
25. 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 = "-";
}