windows - Windows 窗体中的 ComboBox Datagridview 控件

标签 windows winforms datagridview combobox

我在 Windows 窗体上有一个数据 GridView 。它有列 [EmployeeNumber、EmployeeName 和 EmployeeDepartment]。

我希望能够直接在网格中编辑值,但我希望 EmployeeDepartment 成为一个组合框列,这样在单元格编辑时,一个组合框会显示员工部门的可用选项。有没有人能够实现这样的功能?

最佳答案

DataGridView 实际上有一个DataGridViewComboBoxColumn。如果您转到列设计器并添加一个新列,您会注意到您可以选择几种类型之一。它的行为与您所描述的完全一样 - 在编辑时,它会出现。 DataGridView 使用称为编辑控件的东西,并具有用于将控件交换到编辑单元格中的各种事件。

无论哪种方式,如果您想要的只是一个下拉菜单,它是开箱即用的。

要用项目填充组合框,在列编辑器中,您会注意到它具有用于手动设置项目的 Items 属性,或者您可以使用数据绑定(bind)属性:DataSourceDisplayMemberValueMember。当期望值不在项目集合中时,数据绑定(bind)会出现问题,你会得到很多单元格错误;但它们是可以避免的。

一些有用的链接:

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcomboboxcolumn.aspx

http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/e8e2d9eb-fe39-42ab-9a18-2194dac54675/

关于windows - Windows 窗体中的 ComboBox Datagridview 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3177717/

相关文章:

Windows 临界区 - 如何完全禁用旋转

python - (urls.W005) URL 命名空间 'LnkIn' 不是唯一的。

c++ - 是否可以继承默认的 IShellFolder 实现?

c# - Windows 服务与 Winforms/WPF 桌面应用程序

c# - 系统.绘图.图形

c# - 循环遍历单词/短语列表,与数据库表行匹配

c# - 如果 GridView 中不存在则添加值(行)

c - Windows 上的 libeio

C# 带有覆盖/不透明图像的拖放效果

c# - DataGridView 的绑定(bind)表仅在双击时生成一个 RowChanged 事件。我如何让它做两个?