添加一个“选择”选项到一个Windows Forms Databound组合框-简单的方法

发布时间:2020-08-04 FORMS WINDOWS

介绍

许多开发人员的常见任务是在组合框的开头插入一个项,例如“Select an option”或类似的内容。

这个选项在Windows窗体中的问题是,您不能简单地将这个新项添加到绑定组合框中。需要将新项添加到组合框绑定到的数据源。

我已经创建了一个助手方法,它接受现有的datatable,接受几个参数,并使用新添加的值输出datatable。然后将您的组合框绑定到这个新的数据表。

让我们看一些代码,使之更清楚……

使用的代码

隐藏,复制Codepublic static DataTable GetComboBoxedDataTable
(DataTable oldDataTable, string valueColumn, string textColumn,
string topRowValue, string topRowText)
{
DataTable newDataTable = new DataTable();
newDataTable.Columns.Add(valueColumn);
newDataTable.Columns.Add(textColumn);

foreach (DataRow oldDR in oldDataTable.Rows)
{
DataRow newDR = newDataTable.NewRow();
newDR[0] = oldDR[valueColumn].ToString();
newDR[1] = oldDR[textColumn].ToString();
newDataTable.Rows.InsertAt(newDR, newDataTable.Rows.Count);
}

// Add your ‘Select an item’ option at the top
DataRow dr = newDataTable.NewRow();
dr[0] = topRowValue;
dr[1] = topRowText;
newDataTable.Rows.InsertAt(dr, 0);

return newDataTable;
}

这个方法有5个参数:

oldDataTable——这是您已经绑定到的数据表。valueColumn -这是您绑定到组合框的ValueMember字段的datatable中的列的名称。textColumn——这是datatable中绑定到组合框的DisplayMember字段的列的名称。topRowValue——这是你添加到组合框中的“选择”选项的价值。topRowText——这是你添加到组合框中的“选择”选项所显示的文本。

这个helper方法的好处是,它与原始datatable中有多少列无关。它只去除combobox所需的列,因为标准的combobox只支持两列。

为了使用这个方法,这里有一个例子…

隐藏,复制CodeDataSet ds = GetDataSetFromMyDatabase();
comboBox.DataSource = GetComboBoxedDataTable(ds.Tables[0],
“ID”, “EmployeeName”, “0”, “All Employees”);

这就是帮助器方法,它可以让你轻松地在绑定组合框中添加一个“Select”选项。

历史

2009年10月23日:初任

本文转载于:http://www.diyabc.com/frontweb/news163.html

更多相关推荐


Windows Store App 用户库文件操作

发布时间:2015-01-09 WINDOWS STORE
WindowsStoreApp用户库文件操作(1)获取用户库位置如果想要通过应用程序在用户库中创建文件,首先需要获得用户库中指定的位置,例如图片库、文档库等。这里值得注意的是,在获取用户库的位置之前,必须在Windows应用商店项目的清单文件Package.appxmanifest中开启相应的访问权限,如果应用需要访问音乐库,就需要在Package.appxmanifest文件的功能选项卡中勾选“...

谈基于.net平台windows开发中的模式窗体

发布时间:2007-05-28 WINDOWS 平台 STRING BUTTON OBJECT .NET
谈基于.net平台windows开发中的模式窗体发布日期:2006-04-23|更新日期:2006-05-05作者:郑佐适用于:Windows操作系统.NETFramework1.x,2.0运行时环境.NETWindows开发VisualStudio2005摘要:本文阐述了在基于.NET平台的Windows程序开发中使用模式窗体的诸多方面,部分内容延伸到一般窗体的应用。单击此处下载本文的示例代码。...

Symbian内存泄露检查工具HookLogger安装及使用教程

发布时间:2009-11-18 INCLUDE SYMBIAN HOOK WINDOWS EXE 工具
 在使用Symbian进行开发时经常会忘记释放我们曾经使用过的内存或指针,从而导致我们在模拟器中最后退出软件时会爆出提示,而检验遗漏的内存是程序员的天职所在,所以我们要想做好Symbian的开发,就必须熟悉如何查找内存,而SymbianSDK中提供了一个很好的工具HookLogger用来检验我们的内存操作。    下面所提到的是2008年5月1日版(0.423rc版)(对应的SDK是9.1/S60...

web OEM,iSQL

发布时间:2010-09-15 CMD WINDOWS ORACLE 10G WEB
OEM:       Windows系统下,在服务里开启OracleDBConsoleorcl(orcl为默认实例名,如果有创建其他实例名,则开启对应的实例);       登陆http://127.0.0.1:5500/em/console/logon/logon iSQL*Plus:       进入cmd,输入isqlplusctlstart       登陆http://127.0.0.1...

windows环境下flutter开发环境准备

发布时间:2020-07-10 WINDOWS FLUTTER SDK
安装JDK下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html找到适合自己系统的jdk下载并安装验证jdkjava-version安装安卓SDK下载地址:http://dl.google.com/android/installer_r24.4.1-windows.exe,或者:http://t...

WINDOWS DOS命令大全

发布时间:2015-09-16 WINDOWS
命令简介cmd是command的缩写.即命令行。  虽然随着计算机产业的发展,Windows操作系统的应用越来越广泛,DOS面临着被淘汰的命运,但是因为它运行安全、稳定,有的用户还在使用,所以一般Windows的各种版本都与其兼容,用户可以在Windows系统下运行DOS,中文版WindowsXP中的命令提示符进一步提高了与DOS下操作命令的兼容性,用户可以在命令提示符直接输入中文调用文件。  在...

正则表达式规则

发布时间:2012-04-09 WINDOWS 其他 GO 正则表达式 URL .NET 引擎
1.正则表达式规则1.1普通字符  字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是"普通字符"。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。  举例1:表达式"c",在匹配字符串"abcde"时,匹配结果是:成功;匹配到的内容是:"c";匹配到的位置是:开始于2,结束于3。(注:下标从0开始还是从1开始,因当前编程语言的不同而可能不同)  举例2:表达...

Chocolatey的安装和使用

发布时间:2022-10-28 WINDOWS
Chocolatey安装与使用 Chocolatey是Windows下的包管理器,通过命令方式即可完成软件的搜索、安装、更新、卸载等所有操作,最重要的是Chocolatey支持配置统一环境,通过dev-package.config就可以配置一个团队统一的开发环境,软件和版本都可以统一,可避免由于开发环境不一致带来的各种问题,而且Chocolatey提供了一个refreshenv命令,可快速生效环境...

Python是什么,可以做什么(学习心得第一天)

Python是一种什么语言?Python是著名的“龟叔”GuidovanRossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。他的主要优势在于:1.他是一种相当高级的语言,比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。2.他是一种简单易用的语言,Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI...

用Visual C++实现注册表简单操作

  对注册表的编程要用到句柄,我们需要通过一个句柄访问注册表键值,当打开或创建一个键值的时候,会返回一个该键的句柄,并且调用和分析键和创建键值,在分析和创建的同时需要传递句柄到函数。WINDOWS提供预定义的用语---根一级键的保留句柄,如HKEY_CLASS_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USER等,这些都是与注册表的根键相对应并且...

远程重启电脑

发布时间:2022-11-22 JAVA WINDOWS 工具 开发语言
一、设置电脑允许自动启动在远程计算机上编辑设置远程注册表步骤1. 按“Windows+R”键调用运行对话框。输入“services.msc”并点击“确定”。步骤2. 在“服务”窗口中,双击“RemoteRegistry”以检查其状态。步骤3. 将启动类型更改为“自动”。 二、查找远程计算机的计算机名步骤1. 在搜索框中搜索“文件资源管理器”并打开它。步骤2. 在此处导航:此电脑>计算机&gt...

如何去掉文件夹中.svn目录

发布时间:2012-02-03 WINDOWS COMMAND ASP.NET SVN DELETE SHELL DOS
linux下:find.-typed-name".svn"|xargsrm-rf  windows下:1、在项目平级的目录,执行dos命令:xcopyproject_dirproject_dir_1/s/i2、或者在项目根目录执行以下dos命令for/r.%%ain(.)do@ifexist"%%a\.svn"rd/s/q"%%a\.svn"其实第二种方法可以用来干很多事的,比如把代码中的.svn...

Windows 各种计时函数总结

发布时间:2017-02-14 WINDOWS 计时
http://blog.csdn.net/morewindows/article/details/6854764本文对Windows平台下常用的计时函数进行总结,包括精度为秒、毫秒、微秒三种精度的5种方法。分为在标准C/C++下的二种time()及clock(),标准C/C++所以使用的time()及clock()不仅可以用在Windows系统,也可以用于Linux系统。在Windows系统下三种...

Windows下SVN服务器的搭建

发布时间:2007-12-26 DEVELOPMENT SUBVERSION WINDOWS XP 配置管理 SVN
1,软件下载下载Subversion服务器程序。到官方网站的下载二进制安装文件,来到二进制包下载部分,找到WindowsNT,2000,XPand2003部分,然后选择"thisdirectory",这样我们可以看到许多下载的内容,目前可以下载svn-1.4.0-setup.exe。下载Subversion的Windows客户端TortoiseSVN。TortoiseSVN是扩展WindowsSh...

输入法的TSF框架(Text Service Framework)简介

发布时间:2014-03-12 WINDOWS 输入法
几个关于TSF的术语TIP(TextInputProcessor),aTextserviceinTSFCicero,TSF的开发代号,所以微软内部通常称呼TSF框架为CiceroCUAS(CiceroUnawareApplicationSupport),为所有应用程序和控件提供基本的TIP支持AIMM(ActiveInputMethodManager),和CUAS一起工作输入法框架先讲一点点历史,...

Hoops编程指南:04_3_user_interaction_window_system_interaction

发布时间:2022-11-25 EDA软件开发 QT HOOPS DRIVER WINDOWS 3DGS
与一个窗口系统交互1.与一个窗口系统交互在第3.4节中,我们介绍了如何将HOOPS/3dGS连接到本地窗口系统,以便HOOPS知道将其输出发送到何处。这还需要禁用输入处理,本章将对此进行更详细的讨论。您可以使用禁用输入驱动程序选项禁用HOOPS/3dGS输入处理。此驱动程序选项有两种变体:HC_Set_Driver_Options("disableinput");HC_Set_Driver_Opt...

使用 GDB 调试 uCLinux 内核

发布时间:2008-01-21 DEBUGGING INCLUDE LINUX DOWNLOAD WINDOWS SIGNAL
2007-12-2509:33:44慢慢的大家的uClinux都可以跑起来了,也能够自己编译一个内核出来了。但是,如果自己要写驱动、或者修改内核的一些代码、或者像nickmit一样要自己写一个内核的移植,那么调试就是不可或缺的了。在这里我摸索了一个使用我们廉价的Wiggler+GDB+OCDLibremote来调试内核的方法。关于Wiggler和GDB在这里我就不介绍了,说一下Cygwin和OCD...

【WINDOWS / DOS 批处理】for命令详解(六)

发布时间:2022-10-19 运维 WINDOWS WINDOW MICROSOFT 服务器
 for命令详解(一)【共十篇】   for命令详解(二)【共十篇】 for命令详解(三)【共十篇】 for命令详解(四)【共十篇】 for命令详解(五)【共十篇】       for命令详解(六)【共十篇】 for命令详解(七)【共十篇】   for命令详解(八)【共十篇】  for命令详解(九)【共十篇】   for命令详解(十)【共十篇】 【格式六】     【注意】DO后面必须存在空白,即...

用Visual C++在局域网实现IP多播

发布时间:2008-09-02 VB & VC C++ WINDOWS 平台 路由器 SOCKET SOCKETS
发信人: olivier (闷闷◎笨笨※简单生活¤徜徉爱琴海), 信区: VisualC标  题: 用Visual C++在局域网实现IP多播1(zz)发信站: 水木社区 (Wed Jan 17 05:49:56 2007), 站内【 以下文字转载自 NetPRG 讨论区 】发信人: olivier (闷闷◎笨笨※简单生活¤徜徉爱琴海), 信区: NetPRG标  题: 用Visual C++在局...

VMware和mobaXterm连接总结

发布时间:2022-10-14 笔记 运维 LINUX WINDOWS 服务器 VMWARE
今天新装了一个VMware,ping不通外网也连不上客户端,整了一上午终于整好了,总结一下方便下次看。其实本质上还是地址区段改编的区别,我将之前的111都改成新的58之后,就连得上了。1.虚拟网络编辑器 NAT模式——NAT设置 这边网关ip是192.168.58.2(这个数字非常重要)输入vi /etc/sysconfig/network-scripts/ifcfg-ens33修改网关这个是我之...

VMware安装失败 找不到msi文件

发布时间:2022-11-21 WINDOWS LINUX
感谢来自百度的le2356这个一般是安装没显示出来或卸载有残留造成的。解决办法是:下载【Windowsinstallcleanup】,安装后在开始栏可以找到(桌面不显示),从“开始”-->"程序"中打开【Windowsinstallcleanup】,选择【VMwaretools】点击【remove】删除。再重新安装【VMwaretools】重启即可。windowsinstallcleanup...

Eclipse中设置在创建新类时自动生成注释

发布时间:2007-03-20 ECLIPSE JAVA WINDOWS
Eclipse中设置在创建新类时自动生成注释windows-->preferenceJava-->CodeStyle-->CodeTemplatescode-->newJavafiles编辑它${filecomment}${package_declaration}/***@author作者E-mail:*@version创建时间:${date}${time}*类说明*/${...

怎么安装系统

发布时间:2016-08-20 硬盘 WINDOWS WIN7 系统 XP 操作系统
电脑系统安装的方法有很多,包括光盘安装法,U盘安装法,硬盘安装法等,今天我来着重说说硬盘安装系统的方法。2首先要下载一个系统镜像,比如现在流行的windows7系统镜像或者是以前的xp系统镜像,镜像文件一般都很大,尤其是win7有两个多G,如果网速不快,下载的过程就是受煎熬的过程。系统镜像格式一般为iso格式。3下载之后,你还需要用虚拟光驱来加载,你可以在网上搜索一款虚拟光驱来完成加载操作,请根据...

MFC SetTimer用法

发布时间:2012-02-22 API MFC WINDOWS CALLBACK 重构C/C++ TIMER NULL
 MFCSetTimer用法【http://blog.csdn.net/loonghua1314/article/details/6057262】什么时候我们需要用到SetTimer函数呢?当你需要每个一段时间执行一件事的的时候就需要使用SetTimer函数了。使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以此时间间隔周期性触发程序。通常有两种方法来实现:发送WM...

蓝屏代码

发布时间:2007-04-21 C 电脑知识 SEMAPHORE WINDOWS 资讯 通讯 作业
windows蓝屏错误对照表00x0000作业完成。10x0001不正确的函数。20x0002系统找不到指定的档案。30x0003系统找不到指定的路径。40x0004系统无法开启档案。50x0005拒绝存取。60x0006无效的代码。70x0007储存体控制区块已毁。80x0008储存体空间不足,无法处理这个指令。90x0009储存体控制区块位址无效。100x000A环境不正确。110x000B尝...

Windows API一日一练(43)WaitForSingleObject函数

发布时间:2008-06-11 QQ WINDOWS
上面已经介绍怎么样创建一个简单的线程,在那里就需要使用函数WaitForSingleObject,它是用来做什么的呢?其实它是用来实现等待线程结束的,它的机理是这样的,通知Windows操作系统,现在我进入睡眼状态,当我关注的对象条件是否满足,如果满足了就吵醒我。在那里关注的对象是线程是否退出,这是一个条件测试。如果不等待线程关闭,就去删除线程的资源,就会出错的。使用前面的线程是简单一些,但它不合...

挑战《IT我最大》Windows 7由你秀 活动的丑恶行径

发布时间:2009-11-24 丑恶 WINDOWS
   win7简称瘟机,虽然比vista要好,不过仍旧比不上winXP,和Vista一样有着超大的系统盘空间占用,容易死机,本人安装的MSDN旗舰版,开机即死,需要硬关机再启动才能恢复.虽然官方网站介绍杀毒软件列表,但是装了卡巴斯基后,系统更是死的快,新增加了若干功能,不过大半是鸡肋,另外大半是类*nix系统的功能,除了绚丽的界面,消耗大量的资源,仍旧可以算一个鸡肋. 对于"挑战<IT我最大...

挑战《IT我最大》 Windows 7由你秀 活动的丑恶行径

发布时间:2009-11-24 丑恶 WINDOWS
   win7简称瘟机,虽然比vista要好,不过仍旧比不上winXP,和Vista一样有着超大的系统盘空间占用,容易死机,本人安装的MSDN旗舰版,开机即死,需要硬关机再启动才能恢复.虽然官方网站介绍杀毒软件列表,但是装了卡巴斯基后,系统更是死的快,新增加了若干功能,不过大半是鸡肋,另外大半是类*nix系统的功能,除了绚丽的界面,消耗大量的资源,仍旧可以算一个鸡肋. 对于"挑战<IT我最大...

Windows 7 IT我最大 活动的丑恶行径

发布时间:2009-11-24 丑恶 WINDOWS
   win7简称瘟机,虽然比vista要好,不过仍旧比不上winXP,和Vista一样有着超大的系统盘空间占用,容易死机,本人安装的MSDN旗舰版,开机即死,需要硬关机再启动才能恢复.虽然官方网站介绍杀毒软件列表,但是装了卡巴斯基后,系统更是死的快,新增加了若干功能,不过大半是鸡肋,另外大半是类*nix系统的功能,除了绚丽的界面,消耗大量的资源,仍旧可以算一个鸡肋. 对于"挑战<IT我最大...

Windows 编程[2] - 学习窗体生成的过程二

发布时间:2008-04-15 窗体 WINDOWS
曾经做过一个最简单的Windows程序:新建一个Delphi控制台程序,贴入以下代码,即可运行.programProject1;usesWindows;beginMessageBox(0,PChar('Ok!'),PChar('Title'),0);end.代码分析:系统函数MessageBox即可生成一个消息窗口;因为这个函数来自Windows单元,需要usesWindows;同样的道理,我们也...

[图文教程]如何不买苹果电脑来体验类Unix的感觉呢?Linux装机初体验,manjaro笔记本电脑,爆改Windows笔记本

发布时间:2022-11-26 微软 LINUX WINDOWS UNIX LINUX基础 虚拟机
原系统:win1021H1Windows10家庭中文版原系统类型:64位操作系统,基于x64的处理器处理器:Intel®Core™i3-8145UCPU@2.10GHz2.30GHzRAM:8.00GB打算安装系统:manjaroLinux版主玩过多款国内外的Linux了,包括:Ubuntu、Ubuntu一些定制版、centsOS、uos、deepin等等想整点不一样的系统。也安装过winxp、7...

mysql

windows下的mysql启动,停止netstart服务名netstop服务名例如:netstartmysqlnetstopmysql登录认证mysql-hIP-Pport-uuser-p针对的操作对象,分成不同的语言1、数据管理语言DML2、数据定义语言(对保存数据的格式进行定义)DDL3、数据库管理语言(针对数据库服务软件)DCLa、按照指定模式查询表showtableslike['patt...

WCF服务应用程序的创建和使用

发布时间:2022-11-25 MICROSOFT WINDOWS
1.创建WCF服务应用程序:https://blog.csdn.net/weixin_44690047/article/details/119087706usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Runtime.Serialization;usingSystem.ServiceModel;usi...

解决VS2008 开发Wince应用程序项目生成速度慢的问题

发布时间:2012-05-12 WINDOWS WINCE C# MOBILE .NET 任务 程序调试
最近用VS2008开发WindowsMobile程序,使用C#、.NETCompactFramework,发现项目生成速度比较慢。用VS2008打开项目后,开始一段时间生成速度还能忍受,时间一长,编译速度巨慢,最慢达到5分钟之久,实在无法忍受。 决定找出VS2008生成时,做了什么花费时间的工作。从工具à选项进入“选项”对话框选择“MSBuild项目生成输出详细信息”为“诊断”这样编译时,会输出具...

关于Dreamweaver乱码问题的解决方案

发布时间:2004-11-04 C C++ WINDOWS C# DREAMWEAVER
原作者:南宫彩虹出处:5D多媒体出现乱码,大致为两种情况:  一是没有标明主页制作所用的文字,这种情况下很简单就可以解决,在<HEAD>区加上<METAhttp-equiv=Content-Typecontent="text/html;charset=gb2312">即可。  二是你新加装了字体,诸如文鼎酷字体之类。这样的话,你每次新建一张网页,都要调整一次,非常麻烦。那么...

IT领域自负CEO排行榜出炉

发布时间:2009-06-15 微软 SAAS WINDOWS JOBS 产品 SALESFORCE 业界新闻
据国外媒体报道,英国科技网站Vnunet日前评出了IT市场的10大“自负CEO”,微软创始人比尔·盖茨,CEO史蒂夫·鲍尔默,苹果CEO史蒂夫·乔布斯,甲骨文CEO拉里·埃里森,雅虎前任CEO杨致远和现任CEO卡罗尔·巴茨等全部上榜。1.史蒂夫·乔布斯(SteveJobs)—苹果CEO从iPod到iPhone,甚至是一部电视广告,几乎每一款苹果产品上都留下了乔布斯的印记。对于一家企业的控制达到如此...

DirectDraw与Windows协作

发布时间:2012-07-17 DIRECTX WINDOWS 游戏
视频显示设备协作级别:                  全屏模式:整个屏幕表面都分配给了你的游戏,并且你是直接写到视频设备里,没有其他的应用程序能接触到这种设备。/什么直接写到视频设备里????                  窗口模式:DirectDraw需更多的与Windows协作,因为其他的应用程序可能需要更新他们各自的客户窗口区域。因此,窗口模式下你对于视频设备的控制和垄断      ...

springboot 集成 vue

发布时间:2020-03-22 NODEJS LINUX WINDOWS PYTHON JAVA
eclipse 部署好springboot环境,能成功运行。 部署过程见我的其他博客,这里就不过多说。  2. https://www.runoob.com/vue2/vue-install.html  3.下载node.js  下载地址:https://nodejs.org/zh-cn/  (或者https://nodejs.org/en/download/) 右上角有中文切换。   我下载了1...

win10系统重置后设置、浏览器什么都打不开,出现了文件系统错误-2147219196的解决思路

发布时间:2022-10-29 BUG 运维 WINDOWS WINDOWS系统 系统安全
这是我之前写的一个分享帖子以下原文:说到这个问题,前几天的我也是哭的。由于那一天做了一些小事情,导致我将电脑重置了,于是重置后的电脑便出现了一个令人头疼的问题。桌面上只剩下了回收站和edge浏览器(这个正常),但是当我打开浏览器,却发现打不开,设置也打不开,打开一些地方还出现了文件系统错误-2147219196。 我感觉这是windows10系统的一个通病,因为我也发现了很多和我一样问题的同学。但...

安装ZoneAlarm防火墙

发布时间:2008-03-16 C C++ WINDOWS C# 防火墙
安装ZoneAlarm防火墙(即eTrustPersonalFirewall5.5.114官方中文版)时,所需序列号:LGYTR-G5UKR-XH8LH-ROCXC或LMLTK-XT5RC-XHVML-ROE4W。    将简体中文版eTrustPersonalFirewall,变成ZoneAlarmPro5.5.114官方简体中文版的方法——    安装eTrustPersonalFirewal...

用VC 6.0实现串行通信的三种方法

用VC6.0实现串行通信的三种方法中国科学院上海光学精密机械研究所(201800)王颖前言----在实验室和工业应用中,串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛。依据不同的条件实现对串口的灵活编程控制是我们所需要的。----在光学镜片镀膜工艺中,用单片机进行多路温度数据采集控制,采集结果以串行方式进入主机,每隔10秒向主机发送一次采样数据,主机向单片机...