您的位置:首页 > 其它

DataGridView控件用法合集(九)

2011-10-29 23:53 411 查看
[align=left]近期将DataGridView常用的一些用法做了一个整理。为防止页面过长,现分批贴出来,此为第九部分。 [/align]

DataGridView中添加控件

45. DataGridView中显示选择框CheckBox

46. DataGridView中显示下拉框ComboBox

47. DataGridView单击打开下拉框

48. DataGridView中显示按钮

49. DataGridView中显示链接

50. DataGridView中显示图像

45. DataGridView列中显示选择框CheckBox

[VB.NET]

'CheckBox列を追加する

Dim column As New DataGridViewCheckBoxColumn

DataGridView1.Columns.Add(column)

[C#]

//CheckBox列を追加する

DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();

DataGridView1.Columns.Add(column);

中间状态在内的三种状态表示

[VB.NET]

'3種類のチェック状態を表示できるようにする

Dim column As DataGridViewCheckBoxColumn = _

CType(DataGridView1.Columns(0), DataGridViewCheckBoxColumn)

column.ThreeState = True

[C#]

//3種類のチェック状態を表示できるようにする

DataGridViewCheckBoxColumn column =

(DataGridViewCheckBoxColumn)DataGridView1.Columns[0];

column.ThreeState = true;



46. DataGridView中显示下拉框ComboBox

[VB.NET]

'DataGridViewComboBoxColumnを作成

Dim column As New DataGridViewComboBoxColumn()

'ComboBoxのリストに表示する項目を指定する

column.Items.Add("日曜日")

column.Items.Add("月曜日")

column.Items.Add("火曜日")

column.Items.Add("水曜日")

column.Items.Add("木曜日")

column.Items.Add("金曜日")

column.Items.Add("土曜日")

'"Week"列にバインドされているデータを表示する

column.DataPropertyName = "Week"

'"Week"列の代わりにComboBox列を表示する

DataGridView1.Columns.Insert(DataGridView1.Columns("Week").Index, column)

DataGridView1.Columns.Remove("Week")

column.Name = "Week"

[C#]

//DataGridViewComboBoxColumnを作成

DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();

//ComboBoxのリストに表示する項目を指定する

column.Items.Add("日曜日");

column.Items.Add("月曜日");

column.Items.Add("火曜日");

column.Items.Add("水曜日");

column.Items.Add("木曜日");

column.Items.Add("金曜日");

column.Items.Add("土曜日");

//"Week"列にバインドされているデータを表示する

column.DataPropertyName = "Week";

//"Week"列の代わりにComboBox列を表示する

DataGridView1.Columns.Insert(DataGridView1.Columns["Week"].Index, column);

DataGridView1.Columns.Remove("Week");

column.Name = "Week";

通过列Data绑定设置ComboBox

[VB.NET]
'ComboBoxに表示するためのリストを作成する
Dim weekTable As New DataTable("WeekTable")
weekTable.Columns.Add("Display", GetType(String))
weekTable.Columns.Add("Value", GetType(Integer))
weekTable.Rows.Add("日曜日", 0)
weekTable.Rows.Add("月曜日", 1)
weekTable.Rows.Add("火曜日", 2)
weekTable.Rows.Add("水曜日", 3)
weekTable.Rows.Add("木曜日", 4)
weekTable.Rows.Add("金曜日", 5)
weekTable.Rows.Add("土曜日", 6)
'DataGridViewComboBoxColumnを作成
Dim column As New DataGridViewComboBoxColumn()
'"Week"列にバインドされているデータを表示する
column.DataPropertyName = "Week"
'DataGridViewComboBoxColumnのDataSourceを設定
column.DataSource = weekTable
'実際の値が"Value"列、表示するテキストが"Display"列とする
column.ValueMember = "Value"
column.DisplayMember = "Display"
'DataGridView1に追加する
DataGridView1.Columns.Add(column)
[C#]
//ComboBoxに表示するためのリストを作成する
DataTable weekTable = new DataTable("WeekTable");
weekTable.Columns.Add("Display", typeof(string));
weekTable.Columns.Add("Value", typeof(int));
weekTable.Rows.Add("日曜日", 0);
weekTable.Rows.Add("月曜日", 1);
weekTable.Rows.Add("火曜日", 2);
weekTable.Rows.Add("水曜日", 3);
weekTable.Rows.Add("木曜日", 4);
weekTable.Rows.Add("金曜日", 5);
weekTable.Rows.Add("土曜日", 6);
//DataGridViewComboBoxColumnを作成
DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
//"Week"列にバインドされているデータを表示する
column.DataPropertyName = "Week";
//DataGridViewComboBoxColumnのDataSourceを設定
column.DataSource = weekTable;
//実際の値が"Value"列、表示するテキストが"Display"列とする
column.ValueMember = "Value";
column.DisplayMember = "Display";
//DataGridView1に追加する
DataGridView1.Columns.Add(column);

默认状态下,所有下拉框都显示;DisplayStyleForCurrentCellOnly=True的状态下,当前的单元格显示下拉框,其余不显示;还有一种就是光标移动时强调显示。如下图左中右三列。



47. DataGridView单击打开下拉框

通常情况下要打开下拉框需要点击目标单元格三次,第一次选中单元格,第二次进入编辑状态,第三次才能打开下拉框

[VB.NET]

'CellEnterイベントハンドラ

Private Sub DataGridView1_CellEnter(ByVal sender As Object, _

ByVal e As DataGridViewCellEventArgs) _

Handles DataGridView1.CellEnter

Dim dgv As DataGridView = CType(sender, DataGridView)

If dgv.Columns(e.ColumnIndex).Name = "ComboBox" AndAlso _

TypeOf dgv.Columns(e.ColumnIndex) Is DataGridViewComboBoxColumn Then

SendKeys.Send("{F4}")

End If

End Sub

[C#]

//CellEnterイベントハンドラ

private void DataGridView1_CellEnter(object sender,

DataGridViewCellEventArgs e)

{

DataGridView dgv = (DataGridView)sender;

if (dgv.Columns[e.ColumnIndex].Name == "ComboBox" &&

dgv.Columns[e.ColumnIndex] is DataGridViewComboBoxColumn)

{

SendKeys.Send("{F4}");

}

}

48. DataGridView中显示按钮

[VB.NET]

'DataGridViewButtonColumnの作成

Dim column As New DataGridViewButtonColumn()

'列の名前を設定

column.Name = "Button"

'全てのボタンに"詳細閲覧"と表示する

column.UseColumnTextForButtonValue = True

column.Text = "詳細閲覧"

'DataGridViewに追加する

DataGridView1.Columns.Add(column)

[C#]

//DataGridViewButtonColumnの作成

DataGridViewButtonColumn column = new DataGridViewButtonColumn();

//列の名前を設定

column.Name = "Button";

//全てのボタンに"詳細閲覧"と表示する

column.UseColumnTextForButtonValue = true;

column.Text = "詳細閲覧";

//DataGridViewに追加する

DataGridView1.Columns.Add(column);

按钮按下事件取得

[VB.NET]

'CellContentClickイベントハンドラ

Private Sub DataGridView1_CellContentClick(ByVal sender As Object, _

ByVal e As DataGridViewCellEventArgs) _

Handles DataGridView1.CellContentClick

Dim dgv As DataGridView = CType(sender, DataGridView)

'"Button"列ならば、ボタンがクリックされた

If dgv.Columns(e.ColumnIndex).Name = "Button" Then

MessageBox.Show((e.RowIndex.ToString() + _

"行のボタンがクリックされました。"))

End If

End Sub

[C#]

//CellContentClickイベントハンドラ

private void DataGridView1_CellContentClick(object sender,

DataGridViewCellEventArgs e)

{

DataGridView dgv = (DataGridView)sender;

//"Button"列ならば、ボタンがクリックされた

if (dgv.Columns[e.ColumnIndex].Name == "Button")

{

MessageBox.Show(e.RowIndex.ToString() +

"行のボタンがクリックされました。");

}

}

49. DataGridView中显示链接

[VB.NET]

'DataGridViewLinkColumnの作成

Dim column As New DataGridViewLinkColumn()

'列の名前を設定

column.Name = "Link"

'全てのリンクに"詳細閲覧"と表示する

column.UseColumnTextForLinkValue = True

column.Text = "詳細閲覧"

'マウスポインタがリンク上にあるときだけ下線をつける

column.LinkBehavior = LinkBehavior.HoverUnderline

'自動的に訪問済みとならないようにする

'デフォルトでTrue

column.TrackVisitedState = True

'DataGridViewに追加する

DataGridView1.Columns.Add(column)

[C#]

//DataGridViewLinkColumnの作成

DataGridViewLinkColumn column = new DataGridViewLinkColumn();

//列の名前を設定

column.Name = "Link";

//全てのリンクに"詳細閲覧"と表示する

column.UseColumnTextForLinkValue = true;

column.Text = "詳細閲覧";

//マウスポインタがリンク上にあるときだけ下線をつける

column.LinkBehavior = LinkBehavior.HoverUnderline;

//自動的に訪問済みになるようにする

//デフォルトでTrue

column.TrackVisitedState = true;

//DataGridViewに追加する

DataGridView1.Columns.Add(column);

链接按下事件取得

[VB.NET]

'CellContentClickイベントハンドラ

Private Sub DataGridView1_CellContentClick(ByVal sender As Object, _

ByVal e As DataGridViewCellEventArgs) _

Handles DataGridView1.CellContentClick

Dim dgv As DataGridView = CType(sender, DataGridView)

'"Link"列ならば、ボタンがクリックされた

If dgv.Columns(e.ColumnIndex).Name = "Link" Then

MessageBox.Show((e.RowIndex.ToString() + _

"行のリンクがクリックされました。"))

'訪問済みにする

Dim cell As DataGridViewLinkCell = _

CType(dgv(e.ColumnIndex, e.RowIndex), DataGridViewLinkCell)

cell.LinkVisited = True

End If

End Sub

[C#]

//CellContentClickイベントハンドラ

private void DataGridView1_CellContentClick(object sender,

DataGridViewCellEventArgs e)

{

DataGridView dgv = (DataGridView)sender;

//"Link"列ならば、ボタンがクリックされた

if (dgv.Columns[e.ColumnIndex].Name == "Link")

{

MessageBox.Show(e.RowIndex.ToString() +

"行のリンクがクリックされました。");

//訪問済みにする

DataGridViewLinkCell cell =

(DataGridViewLinkCell)dgv[e.ColumnIndex, e.RowIndex];

cell.LinkVisited = true;

}

}

50. DataGridView中显示图像

[VB.NET]
'DataGridViewImageColumnの作成
Dim column As New DataGridViewImageColumn()
'列の名前を設定
column.Name = "Image"
'Icon型ではなく、Image型のデータを表示する
'デフォルトでFalseなので、変更する必要はない
column.ValuesAreIcons = False
'値の設定されていないセルに表示するイメージを設定する
column.Image = New Bitmap("C:/null.gif")
'イメージを縦横の比率を維持して拡大、縮小表示する
column.ImageLayout = DataGridViewImageCellLayout.Zoom
'イメージの説明
'セルをクリップボードにコピーした時に使用される
column.Description = "イメージ"
'DataGridViewに追加する
DataGridView1.Columns.Add(column)
'"Image"列の一番上のセルのイメージを変更する
DataGridView1("Image", 0).Value = New Bitmap("C:/top.gif") '
[C#]
//DataGridViewImageColumnの作成
DataGridViewImageColumn column = new DataGridViewImageColumn();
//列の名前を設定
column.Name = "Image";
//Icon型ではなく、Image型のデータを表示する
//デフォルトでFalseなので、変更する必要はない
column.ValuesAreIcons = false;
//値の設定されていないセルに表示するイメージを設定する
column.Image = new Bitmap("C://null.gif");
//イメージを縦横の比率を維持して拡大、縮小表示する
column.ImageLayout = DataGridViewImageCellLayout.Zoom;
//イメージの説明
//セルをクリップボードにコピーした時に使用される
column.Description = "イメージ";
//DataGridViewに追加する
DataGridView1.Columns.Add(column);
//"Image"列の一番上のセルのイメージを変更する
DataGridView1["Image", 0].Value = new Bitmap("C://top.gif");

图片属性单元格未设值时红差不显示的设定

[VB.NET]

'イメージ列を取得

Dim imageColumn As DataGridViewImageColumn = _

CType(DataGridView1.Columns("Image"), DataGridViewImageColumn)

'セルスタイルのNullValueをnullにする

imageColumn.DefaultCellStyle.NullValue = Nothing

[C#]

//イメージ列を取得

DataGridViewImageColumn imageColumn =

(DataGridViewImageColumn)DataGridView1.Columns["Image"];

//セルスタイルのNullValueをnullにする

imageColumn.DefaultCellStyle.NullValue = null;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: