DataGridView控件用法合集(四)
DataGridView控件用法合集(四)
整理 By Tyouvivi 整理日 2007年06月12日 第四部分
近期将DataGridView常用的一些用法做了一个整理。为防止页面过长,现分批贴出来,此为第四部分。
19. DataGridView中的ContextMenuStrip属性 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 = "-"; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |