首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在DataGridView中单击单元格时使用ComboBox text /value fill

在DataGridView中单击单元格时使用ComboBox text/value fill是指在Windows Forms应用程序中,当用户单击DataGridView控件中的某个单元格时,将该单元格转换为ComboBox控件,并填充ComboBox的文本和值。

具体实现方法如下:

  1. 首先,确保已经在Windows Forms应用程序中添加了一个DataGridView控件,并将其命名为dataGridView1。
  2. 在窗体加载事件中,为DataGridView的CellClick事件添加处理程序。代码如下:
代码语言:txt
复制
private void Form1_Load(object sender, EventArgs e)
{
    dataGridView1.CellClick += DataGridView1_CellClick;
}
  1. 在CellClick事件处理程序中,判断用户是否单击了ComboBox所在的列。如果是,则将单元格转换为ComboBox,并填充ComboBox的文本和值。代码如下:
代码语言:txt
复制
private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    // 判断是否单击了ComboBox所在的列(假设为第2列)
    if (e.ColumnIndex == 1)
    {
        // 创建一个ComboBox控件
        ComboBox comboBox = new ComboBox();

        // 获取单元格的文本和值
        string cellText = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
        string cellValue = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();

        // 填充ComboBox的文本和值
        comboBox.Items.Add(new ComboBoxItem(cellText, cellValue));
        comboBox.DisplayMember = "Text";
        comboBox.ValueMember = "Value";
        comboBox.SelectedIndex = 0;

        // 将ComboBox控件添加到单元格中
        dataGridView1.Controls.Add(comboBox);
        comboBox.Location = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Location;
        comboBox.Size = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Size;
        comboBox.Visible = true;
    }
}

以上代码中,ComboBoxItem是一个自定义类,用于存储ComboBox的文本和值。代码如下:

代码语言:txt
复制
public class ComboBoxItem
{
    public string Text { get; set; }
    public string Value { get; set; }

    public ComboBoxItem(string text, string value)
    {
        Text = text;
        Value = value;
    }
}

这样,当用户单击DataGridView中的某个单元格时,该单元格将被转换为一个ComboBox控件,并填充ComboBox的文本和值。

推荐的腾讯云相关产品:腾讯云数据库MySQL、腾讯云云服务器CVM。

腾讯云数据库MySQL:是腾讯云提供的一种高性能、可扩展的关系型数据库服务,适用于各种规模的应用程序。它具有高可用性、高可靠性、弹性扩展等特点,可满足不同业务场景的需求。了解更多信息,请访问腾讯云数据库MySQL

腾讯云云服务器CVM:是腾讯云提供的一种灵活可扩展的云服务器,可满足不同规模和需求的应用程序。它具有高性能、高可靠性、弹性伸缩等特点,可提供稳定可靠的计算资源。了解更多信息,请访问腾讯云云服务器CVM

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DataGridView控件中加入ComboBox下拉列表框的实现

本文转载:http://www.cnblogs.com/luqingfei/archive/2007/03/28/691372.html 虽然Visual Studio DataGridView...本文介绍一种只在当前编辑单元格显示下拉列表框的方法,供大家参考。   ...打开窗体代码窗口,代码窗口中声明一个ComboBox的控件 // 定义下拉列表框 private ComboBox cmb_Temp = new ComboBox();   我们要绑定的下拉列表框的功能是选择性别...控件     this.dgv_User.Controls.Add(cmb_Temp); }   当用户选择的单元格移动到性别这一列,我们要显示下拉列表框,添加如下事件 private void dgv_User_CurrentCellChanged...控件             this.dgv_User.Controls.Add(cmb_Temp);         }         // 当用户移动到性别这一列单元格显示下拉列表框

3.6K20

【愚公系列】2023年11月 Winform控件专题 DataGridView控件详解

例如,可以使用以下代码单元格编辑后更新数据:private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs...CellStyle编辑器,可以设置奇数行和偶数行的背景颜色、字体、前景颜色等样式属性。也可以选择使用其他样式。...在按钮的单击事件,将选中的行复制到剪贴板,并设置了复制到剪贴板的内容类型为包含列标题的内容。...使用RowTemplate属性可以DataGridView控件自定义行样式。可以DataGridView添加多个行,每行都可以有不同的样式。...ScrollBars.Both;需要注意的是,如果设置DataGridView的AutoSizeColumnsMode属性为Fill或者Column.Fill,则滚动条将不会出现,因为表格的所有列都已经被自动调整大小

57911

C# 可视化程序设计机试知识点汇总,DBhelper类代码

打开窗体 HotelType ht = new HotelType(); ht.Show();//非模式窗体 ht.ShowDialog();//模式窗体 父窗体打开子窗体 HotelType...=””; 窗体加载查询绑定到DataGridView控件(Load事件,查询) //定义SQL语句 string sql1 = "select * from RoomType"; //调用DBHelper....DisplayMember = "typeName"; this.comboBox1.ValueMember = "typeID" //将返回的结果绑定到DataGridView控件 this.comboBox1...控件 this.dataGridView1.DataSource = dt; 选中DataGridView的行,将所有列的数据一个个放入到文本控件(cellClick事件)。....Text = this.dataGridView1.SelectedRows[0].Cells[1].Value.ToString(); //”=”号定义变量接收, ”=”号右边获得选中第一行第三列的值转为

7.7K20

C#——DataGridView控件填写数据事件

e) { } // 单元格的状态相对于其内容的更改而更改时发生。...private void dataGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e) { } // 单元格完成编辑发生...举个例子,我单击一个单元格,则单元格进入编辑状态,CellBeginEdit事件发生,然后我输入1,2……乃至更多的东西,上述的事件也不会发生。另外Key*系列的事件也试过,也没反应。...EditingControlShowing事件比上述事件还要早发生,他是dataGridView控件为了使用户可以编辑,而加载一个TextBox(如果单元格复选框,是其他的控件,那么就加载对应的控件)...,加载TextBox这个事件发生,可以时间参数获取这个TextBox的引用,动态注册一个事件即可。

1.5K62

使用C#开发数据库应用程序

a.使用菜单条 Name 代码中菜单对象的名称 Items 菜单显示的项的集合 Text 与菜单相关联的文本 Name 窗体对象的名称 Text 窗体标题栏显示的文字...b.使用基本控件 (1)标签【Lable】 属性:Image将在标签上显示的图像 Text标签上显示的文本 (2)文本框(TextBox) 属性 MaxLenth 指定可以文本框输入的最大字符数...Multiline 表示是否可以文本框输入多行文本 PasswordChar 指示作为密码框,文本框显示的字符,而不是实际输入的文本 ReadOnly 指定是否允许编辑文本框的文本...Text 与文本框相关联的文本 (3)按钮【Button】 属性 Text 按钮上显示的文本 TextAlign 按钮上文本的对齐方式 事件 Click 单击按钮发生 (4)单选按钮...的菜单,选择“格式”-“对齐” b.使用Anchor (1)选择要锚定的控件 (2)"属性"窗口中,单击Anchor属性右边的箭头,显示编辑器 (3)显示的十字形上选择或清除控件锚定的边

5.8K30

mysql connector 如何使用_MySQL ConnectorNet 的简略使用

mysql Connector/Net 的简单使用 首先,新建工程(Windows Application) 然后,增加引用(MySql.Data) 注意:根据使用.net版本的不同而选择MySql.Data...版本 之后,放置控件 3个TextBox,2个ComboBox, 1个DataGridView等等 密码框设置 下拉框设置 数据格设置 连接按钮代码: string connStr = string.Format...(“server={0};user id={1}; password={2}; database=mysql; pooling=false”, edtSrv.Text, edtUser.Text, edtPwd.Text...Unable to convert MySQL date/time value to System.DateTime 出现原因: DateTime列含有“0000-00-00”(YYYY-mm-dd)或者...“0000-00-00 00:00:00”(YYYY-mm-dd HH:mm:ss)数据 解决办法: 连接串格式增加“Convert Zero Datetime=True” server={0};

2.1K10

DataGridView控件用法一:数据绑定

绑定到包含多个列表或表的数据源,只需将DataMember属性设置为指定要绑定的列表或表的字符串即可。...与基于文本的值一起使用绑定到数字和字符串类型的值自动生成 DataGridViewCheckBoxColumn 与boolean和checkState值一起使用绑定到这些类型的值自动生成...DataGridViewImageColumn 用于显示图像,绑定到字节数组、Image对象或Icon对象自动生成 DataGridViewButtonColumn 用于单元格显示按钮,不会在绑定时自动生成...,通常用来做未绑定列 DataGridViewComboBoxColumn 用户单元格显示下拉列表,不会在绑定时自动生成,通常需要手动进行数据绑定 DataGridViewLinkColumn 用于单元格显示超链接...绑定到包含多个列表或表的数据源,只需将DataMember属性设置为指定要绑定的列表或表的字符串即可。

3.8K20

DataGridView使用小结

//只选中一行设置活动单元格                     if (dataGridView1.SelectedRows.Count == 1)                     {... = false;//必须在代码设置 4).显示图片 通常,我们将图片路径保存在数据库,但在dataGridView1要显示图片,可以进行如下操作: ①.添加一个DataGridViewTextBoxColumn...["Pic"]).Value = image2;         }     } } 5).当网格未填充满控件,画线来填充空白区域 ///  /// 绘制网格填充空白区域 /// <...不启用删除 dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;//单击单元格选中整行 dataGridView1...;//列标题居中显示 但实际的效果总是偏左了一点,原因是列可以进行排序,排序标志符号列标题上占了空间。

2.2K20

DataGridView的DataGridViewComboBoxColumn列点击一次,自动处于编辑状态

这使操作变得很麻烦,降低了易用性,尤其是程序部署一些小型设备或者触摸屏设备上,则更为不便。下面介绍两种方法解决这个问题。...首先,我们创建一个Windows应用程序,在窗体拖拽一个DataGridView控件,命名为dataGridView。要确保该控件的“启用编辑”选项勾选。下面我们动态创建列,以及添加一行数据。...["combo"].Value = "0"; } } 好了,以上基本工作做完了,下面说其中一个方法。...方法一: DataGridView控件的CellClick事件添加如下代码: CellClick事件 private void dataGridView_CellClick(object sender...} } } 方法二: DataGridView的CellEnter事件添加如下代码: CellEnter事件 private

2.5K11

C#常见控件与SQL Sever数据库交互

好了,准备工作完成了,我们直接开始将数据添加到DataSet。...然后我们用这个对象(我这叫da)直接.Fill将数据添加到DataSet,括号内分别是DataSet对象名和我们的DataSet的表名。...,很简单,下面那个ValueMember是绑定你数据库的字段名 最后贴个图,所有代码就这样 DataGridView控件绑定数据库源 我们经常会使用表格输出数据库内容,那就肯定少不了DataGridView...DataSet,所以我需要使用连接接口来打开数据库,我们直接con.Open() 然后就是我们的Command对象,我们直接new一个,并且最后的括号内填上sql语句字符串和接口(con) SqlCommand...然后我们左侧设置里面添加成员,要输出多少列数据就添加多少列!

1.3K40

c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)

(DataGridView1.CurrentCell.RowIndex); *******另外,使用 DataGridView.CurrentCellAddress 属性(而不是直接訪问单元格)来确定单元格所在的行...// 设定 (0, 0) 为当前单元格 DataGridView1.CurrentCell = DataGridView1[0, 0]; 整行选中模式开启,你也能够通过 CurrentCell...********DataGridView 设定单元格仅仅读: 1) 使用 ReadOnly 属性 ? ...该事件处理除了能够设定默认值以外,还能够指定某些特定的单元格的ReadOnly属性等。...比起使用循环遍历,使用该事件来设定右键菜单的效率更高。可是,DataGridView使用了DataSource绑定并且是VirtualMode的时候,该事件将不被引发。

3.6K10

C#—— DataGridView控件的各种操作总结(单元格操作,属性设置)

.CurrentCell.RowIndex); *******另外,使用 DataGridView.CurrentCellAddress 属性(而不是直接访问单元格)来确定单元格所在的行: DataGridView.CurrentCellAddress.Y...// 设定 (0, 0) 为当前单元格 DataGridView1.CurrentCell = DataGridView1[0, 0]; 整行选中模式开启,你也可以通过 CurrentCell 来设定选定行...********DataGridView 设定单元格只读: 1) 使用 ReadOnly 属性 ? ...该事件处理除了可以设定默认值以外,还可以指定某些特定的单元格的ReadOnly属性等。...比起 使用循环遍历,使用该事件来设定右键菜单的效率更高。但是,DataGridView使用了DataSource绑定而且是VirtualMode的 候,该事件将不被引发。

5.9K32

C# winform DataGridView 常见属性

(DataGridView1.CurrentCell.RowIndex); 另外,使用 DataGridView.CurrentCellAddress 属性(而不是直接访问单元格)来确定单元格所在的...——————————————————————————– // 设定 (0, 0) 为当前单元格 DataGridView1.CurrentCell = DataGridView1[0, 0]; 整行选中模式开启...——————————————————————————– ② DataGridView 设定单元格只读: 1) 使用 ReadOnly 属性 如果希望,DataGridView 内所有单元格都不可编辑...比起使用循环遍历,使用该事件来设定右键菜单的效率更高。但是,DataGridView使用了DataSource绑定而且是VirtualMode的时候,该事件将不被引发。...该事件处理除了可以设定默认值以外,还可以指定某些特定的单元格的ReadOnly属性等。

3.6K40
领券