DataGridView控件用法合集(九)

   DataGridView控件用法合集(九)

整理 By Tyouvivi   整理日 2007年06月13日  第九部分

近期将DataGridView常用的一些用法做了一个整理。为防止页面过长,现分批贴出来,此为第九部分。 

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"

'DataGridViewComboBoxColumnDataSourceを設定

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";

//DataGridViewComboBoxColumnDataSourceを設定

column.DataSource = weekTable;

//実際の値が"Value"列、表示するテキストが"Display"列とする

column.ValueMember = "Value";

column.DisplayMember = "Display";

//DataGridView1に追加する

DataGridView1.Columns.Add(column);

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

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)

'セルスタイルのNullValuenullにする

imageColumn.DefaultCellStyle.NullValue = Nothing

[C#]

//イメージ列を取得

DataGridViewImageColumn imageColumn =

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

//セルスタイルのNullValuenullにする

imageColumn.DefaultCellStyle.NullValue = null;

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值