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

第一:

数据绑定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

时间: 01-23

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

C# Winform中DataGridView的DataGridViewCheckBoxColumn使用方法

下面介绍Winform中DataGridView的DataGridViewCheckBoxColumn使用方法: DataGridViewCheckBoxColumn CheckBox是否选中 在判断DataGridView中CheckBox选中列的时候,用DataGridViewRow.Cells[0].FormattedValue.ToString()=="True"语句时存在问题,当我们直接点击CheckBox时,结果显示未选中,但是如果我们在点击其他单元格时,结果显示选中.而用

winform中DataGridView实现分页功能

http://liyaguang20111105.blog.163.com/blog/static/19929420220146283255809/ 在winform的设计中,要实现对DataGridView控件的分页功能,需要两个控件:BindingSource.BindingNavigator,根据需求可对BindingNavigator进行自由的扩展,下图的示例则是根据一般需求对分页功能的实现.红色区域是对BindingNavigator控件扩展后的效果. 具体实现过程 : //窗体构造方

Winform中DataGridView网格添加ComBoBox

在工作中遇到需要在DataGridView网格中添加ComBoBox的需求.解决后记录 1 在窗体类中声明一个全局的变量ComBoBox,并在Form的Load事件中设置号ComBoBox的下拉选项 2 在DataGridView绑定完数据源之后,将ComBoBox添加到DataGridView中 3 编写DataGridView的CurrentCellChanged事件和ComBoBox的SelectedIndexChanged事件 完整代码如下: public partial class F

Winform 中DataGridView控件添加行标题

有很多种方法. 1.可以在DataGridView控件中的RowStateChanged事件改变行标题单元格的值(Row.HeaderCell.Value) 1 /// <summary> 2 /// 行状态更改时发生 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 pri

C#winform中DataGridView常用的属性

1.AllowUserToAddRows属性:指示是否向用户显示添加行的选项 AllowUserToOrderColumns属性:指示是否允许通过手动对列重新定位 AllowUserToResizeColumns属性:指示用户是否可以调整列的大小 AllowUserToResizeRows属性:指示用户是否可以调整行的大小 2.ColumnHeadersVisible属性:指示是否显示列标题行    RowHeadersVisible属性:指示是否显示包含行标题的列 3.ReadOnly属性:指

winform中DataGridView的数据实现导出excel

1,窗体设计 首先需要引入程序集:Microsoft.Office.Interop.Excel  (如果没有引用过的需要右键添加引用再搜索就行了) 实现的方法: /// <summary> /// /// </summary> /// <param name="fileName">文件路径</param> /// <param name="myDGV">控件DataGridView</param>

C#winform中datagridview导出Excel

只需要传入datagridview的name即可. 1 //导出Excel()方法 2 public void ToExcel(DataGridView dataGridView) 3 { 4 //实例化一个Excel.Application对象 5 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); 6 7 if (excel == null)

WinForm中DataGridView验证单元格输入的是数字

转载:http://www.cnblogs.com/ganqiyin/archive/2013/02/18/2915491.html 事件:DataGridView验证单元格输入的是数字,DataGridView源数据是从数据库读取的. 需求:当用户输入的不是数字的时候需要提示信息(数据是直接绑定数据库的,因此dataGridView有自己的报错功能,我们需要屏蔽掉它,显示自己的错误提示!) 实现: 选择DataGridView的CellValidating事件 (1)  验证整数: 1 pri

Winform中DataGridView多行删除

//在DataGridView中删除选中行,从数据库中删除. private void ButtonDelete_Click(object sender, EventArgs e) { if (dataGridView1.DataSource == null || dataGridView1.CurrentRow == null) { return; } else { if (this.dataGridView1.SelectedRows.Count > 0) { DialogResult dr