码迷,mamicode.com
首页 > Windows程序 > 详细

winform中DataGridView添加ComboBox的最终解决方案(点击ComboBox默认显示当前行的内容)

时间:2015-01-23 18:06:40      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

第一:

数据绑定ComBoBox控件

先在窗体设计时拖一个ComBoBox控件,然后在里面的ITEMS设好你要下拉项,或者从数据库中的表绑定,这个估计都会。

第二:

// 将下拉列表框加入到DataGridView控件中,这句放在绑定DataGridView之后写。 在窗体的Load方法中加入:g_DataGridView.Controls.Add(g_ComBoBox);也就是把ComBoBox控件添加到DataGridView控件中
第三: 在DataGridView控件的CurrentCellChanged方法中写如下代码:

DataGridViewCell CurrnetCell = g_View.CurrentCell;
if (CurrnetCell != null && CurrnetCell.OwningColumn.Name == "列名")
{
Rectangle TmpRect = g_DataGridView.GetCellDisplayRectangle(CurrnetCell.ColumnIndex, CurrnetCell.RowIndex, true);
g_ComBoBox.Text = CurrnetCell.Value.ToString();
g_ComBoBox.Size = TmpRect.Size;
g_ComBoBox.Top = TmpRect.Top;
g_ComBoBox.Left = TmpRect.Left;
g_ComBoBox.Visible = true;
}
else
{
g_ComBoBox.Visible = false;
}

 

特别注意这一句:g_ComBoBox.Text = CurrnetCell.Value.ToString();

如果ComBoBox绑定的是两个值,即编码和名称,那么请把这句改为

g_ComBoBox.SelectedValue= CurrnetCell.Value.ToString(); 要不然点击ComBoBox控件后默认的值不是当前表中选中的值。

 

第四:

在ComBoBox控件的SelectedIndexChanged方法中写:
g_DataGridView.CurrentCell.Value = g_ComBoBox.Text;

 

注意:如果有编码改成:

g_DataGridView.CurrentCell.Value = g_ComBoBox.SelectedValue.ToString();

 

好了,大功告成了。

来自:http://blog.csdn.net/hfzsjz/article/details/2836979

winform中DataGridView添加ComboBox的最终解决方案(点击ComboBox默认显示当前行的内容)

标签:

原文地址:http://www.cnblogs.com/gisoracle/p/4244625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!