WinForm中ComboBox绑定总结1.Da;mboBox.Items.Count&0);客园精华集》WebService筛选结果(共79;
WinForm 中ComboBox 绑定总结1. DataTable用DataTable直接绑定,只需 要设置DataSource、DisplayMember、ValueMember三个属性即可。this.cmbConsumeSuperMarket.DataSource = dtSuperMthis.cmbConsumeSuperMarket.DisplayMember = &Name&; this.cmbConsumeSuperMarket.ValueMember = &ID&; this.cmbConsumeSuperMarket.SelectedIndex = 0;在使用时使用如下方式,即可取得相应 的ID和Name,这样就可以基本满足业务要求了。StringTools.ObjectToInt(this.cmbConsumeSuperMarket.SelectedValue);StringTools.ObjectToStr(this.cmbConsumeSuperMarket.SelectedText);但如上的问题是,因为ComboBox绑定后默认显示第一项,但需要一项提示性选项,我没有找到什么好方法实现了。上网看一些人用ComboBox.SelectedIndex = -1或设置ComboBox.Text或初始化设置ComboBox.Items一个项为初始项或设置ComboBox.DropDownStyle,但 我这里都没达到效果。本应实现效果A,但以上只能实现B效果,所以以上不符合要求。效果A
效果B2. ComboBox.Items.Add一开始使用时,以为像Asp.net那样有ListItem属性可以使用,但Items只有几个特别简单的属性,还好Add(object item),所以就只能在object这里作文章了。所以就把要绑定的item新new 了一个对象,再重写ToString(),如是乎就可以了。因为在整个页面中,有很多类似的ComboBox控件,所以就小小的抽象了一下,然后就可以便捷的实现效果B了。具体实现方式如下:using System.Dusing System.Windows.Fnamespace BlackCore.App.Method{//抽象类 DataBindControls 引入抽象方法 dataBindComboBox(……)public abstract class DataBindControls{/// /// 绑定 ComboBox/// /// ComboBox Control/// 是否为此控件插入一个默认选项且默认选中/// 需要绑定的DataTable/// 显示文字(DisplayMember)/// ValueMemberpublic abstract void dataBindComboBox(ComboBox cmb, bool isInsertDefaultItem, DataTable dt, string selectedText, string selectedValue);}}实现抽象即可 using System.Dusing System.Windows.Fusing BlackCore.FinancialLnamespace BlackCore.App.Method{//实现抽象//类 DataBindControlsImplement 重 写 dataBindComboBox,并提供一个具体实现。//由 于 DataBindControlsImplement 中没有了抽象成员,因此可以(但并非必须) 将 DataBindControlsImplement 声明为非抽象类。public class DataBindControlsImplement : DataBindControls{
public override void dataBindComboBox(ComboBox comboBox, bool isInsertDefaultItem, DataTable dataTable, string selectedText, string selectedValue){if (dataTable != null && dataTable.Rows != null && dataTable.Rows.Count & 0){if (co
mboBox.Items.Count & 0){comboBox.Items.Clear();}int i = 1;foreach (DataRow dataRow in dataTable.Rows){//comboBox.SelectedText = StringTools.ObjectToStr(dataRow[selectedText]).Trim ();//comboBox.SelectedValue = StringTools.ObjectToInt(dataRow[selectedValue]).ToString ();//BlackCore.BLL.FinancialManage.FMProject bllProject = new BlackCore.BLL.FinancialManage.FMProject();//BlackCore.Model.FinancialManage.FMProject modelProject = new BlackCore.Model.FinancialManage.FMProject();//modelProject = bllProject.GetModel(StringTools.ObjectToInt(dataRow[&ID&]));//用如下这种方式就只有selectedText,而没有selectedValue//comboBox.Items.Add(StringTools.ObjectToStr(dataRow[selectedText]).Trim());//可以存储在ComboBox中的任何种类的对象,而不是字符串。重写toString()方法生成的文本框将显示。//这样就可以实现selectedText,selectedValue或更多需要的属性comboBox.Items.Add(new ComboBoxItemTextValue(StringTools.ObjectToInt(dataRow[selectedValue]).ToString(), StringTools.ObjectToStr(dataRow[selectedText])));}if (isInsertDefaultItem){comboBox.Items.Insert(0, &请选择&);}comboBox.SelectedIndex = 0;}
}public class ComboBoxItemTextValue{public string selectTpublic string selectV
public ComboBoxItemTextValue(string _selectValue, string _selectText){selectValue = _selectVselectText = _selectT}public override string ToString(){return selectT}}}}ComboBox的绑定DataBindControlsImplement implement = new BlackCore.App.Method.DataBindControlsImplement();implement.dataBindComboBox(this.searchCmbConsumeMarket, true, bllMarket.GetList(&&).Tables[0], &Name&, &ID&);ComboBox的获取 if (StringTools.ObjectToInt(searchCmbConsumeMarket.SelectedIndex) != 0){boBoxItemTextValue comboItem = (boBoxItemTextValue)this.searchCmbConsumeProject.SelectedIstring selectedText = comboItem.selectTint selectedValue = comboItem.selectV}分类: WinForm开发绿色通道: 好文要顶 关注我 收藏该文与我联系 风雨者2关注 - 168粉丝 - 194+加关注0 0(请您对文章做出评价)? 上一篇:C# WinForm开发系列 - 文章索引? 下一篇:(收藏)《博
客园精华集》WebService筛选结果(共79篇)posted on
11:31 风雨者2 阅读(2945) 评论(4) 编辑 收藏评论#1楼
实际上可以在DataTable中先插入一行,再将这个Combobox的datasouce设为这个DataTable啊支持(0)反对(0) 20:04 | qixin6618
引用qixin6618:实际上可以在DataTable中先插入一行,再将这个Combobox的datasouce设为这个DataTable啊同意支持(0)反对(0) 16:10 | jhkmnm
完全同意,解决我一大问题。谢谢1楼支持(0)反对(0) 17:28 | 袁克雄
#4楼[楼主]
1. ArrayList al1 = new ArrayList(); 2. al1.Add(new DictionaryEntry(&Y&, &军品&)); 3. al1.Add(new DictionaryEntry(&N&, &民品&)); 4. cbIsArmy.DataSource = al1; 5. cbIsArmy.DisplayMember = &Value&; 6. cbIsArmy.ValueMember = &Key&;
包含各类专业文献、高等教育、行业资料、各类资格考试、中学教育、幼儿教育、小学教育、WinForm中ComboBox绑定总结10等内容。
C#WinForm_ComboBox数据绑定的问题_理学_高等教育_教育专区。C#WinForm_ComboBox数据绑定的问题Visual Studio C#中的数据绑定 #五. 复杂型组件的数据绑定: 在上面的介... WinForm 中 comboBox控件之数据绑定_计算机软件及应用_IT/计算机_专业资料。添加两个 ComboBox, public partial class Form1 : Form { public Form1() { ... C# WinForm 中ComboBox数据绑定的问题_IT/计算机_专业资料。C# WinForm 中ComboBox数据绑定的问题今日推荐 78份文档 笑翻神图 爆笑图片汇集 搞笑图片乐翻人 cs3简单... WinForm中ComboBox添加Key_计算机软件及应用_IT/计算机_专业资料。WinForm中ComboBox...这通常不符 合大家日常的应用, 因为大家日常应用通常是键/值对的形式去绑定它... 为comboBox控件添加数据绑定_IT/计算机_专业资料。利用C#语言为comboBox控件(列表框...ComboBox控件属性 32页 1下载券 C__WinForm_中ComboBox数... 8页 免费 C# ... //释放资源 } ///
/// 用于对指定的ComboBox控件进行数据绑定 ///
//...C#窗体应用程序设计 104页 免费 winform界面特效设计源码... 219页 免费©... DEV控件使用总结_计算机软件及应用_IT/计算机_专业资料。ComboBox 绑定 DataSet ds...C# WinForm 文件上传下载... 21页 免费 2013年***高考高起专语... 6页 免... c#(winform)中ComboBox添加KeyValue项、获取选中项、根据Key_计算机软件及应用_IT...这通常不符合大家日常的应用, 因为大家日常应用通常是键/值对的形式去绑定它的...Combobox绑定不了 数据库 求大大帮忙看上,comboBox1.ValueMember ,提示无法绑定到新的显示成员 - C#当前位置:& &&&Combobox绑定不了 数据库 求大大帮忙看上,comboBoxCombobox绑定不了 数据库 求大大帮忙看上,comboBox1.ValueMember ,提示无法绑定到新的显示成员&&网友分享于:&&浏览:19次Combobox绑定不了 数据库 求大大帮忙看下,comboBox1.ValueMember ,提示无法绑定到新的显示成员!我想用Combobox绑定数据库
表名:AA, 主索引:name, 第二个栏位:value ,将name列全部显示在combobox中,并且能够根据在combobox中输入的字母查找相似,减少下拉菜单中的name。 可是一直在报错。求大大帮忙看下 &
string strConnection = &user id=password=;&; &
strConnection += &initial catalog=Server=& &
strConnection += &Connect Timeout=30&; &
dbconn = new SqlConnection(strConnection); &
dbconn.Open(); &
string Select_conditions = &select * from AA&; &
da_Bosa = new SqlDataAdapter(Select_conditions, dbconn); &
SqlCommandBuilder cb = new SqlCommandBuilder(da_Bosa); &
da_Bosa.UpdateCommand = cb.GetUpdateCommand(); &
DataSet ds = new DataSet(); &
da_Bosa.Fill(ds, &AA&); &
comboBox1.DataSource = &
comboBox1.DisplayMember = &value &; &
comboBox1.ValueMember = &name&;
这句一直在报错,无法绑定到新的显示成员。 &
dbconn.Close();求大大们帮忙看下 。C# 用了没几天,求指点~ 能顺便告诉我下能够根据在combobox中输入的字母查找相似,减少下拉菜单中的name就更好------解决方案--------------------
comboBox1.DataSource =换成comboBox1.DataSource = ds.tables[0];试试
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
我不期望它有多酷,也不期望它有多迷人,
更不想用大把的线条和边框桎梏它,
在这里,我只是想,
听可以让我放松的音乐,
写我认为应该记录下的文字,
它属于我,也属于你,
梦想是绚烂的,奔赴梦想的途中同样风光无限——边走边看,享受林间洒落一地的春光......
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(1234)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'ComboBox绑定数据源时触发SelectedIndexChanged事件的处理办法',
blogAbstract:'\r\nComboBox最经常使用的事件就是SelectedIndexChanged。但在将ComboBox绑定到某个数据源的过程中,会触发SelectedIndexChanged事件,而这个时候用户并没有选择内容,其SelectedValue也不是对应字段的值。那么时写在SelectedIndexChanged中的处理代码就会因为SelectedValue的内容不正确引发异常。一般网上找到的方法是添加一个标记位,在绑定前设置为false,绑定完成后设置回true。',
blogTag:'combobox绑定',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:2,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'我不期望它有多酷,也不期望它有多迷人,\r\n更不想用大把的线条和边框桎梏它,\r\n在这里,我只是想,\r\n听可以让我放松的音乐,\r\n写我认为应该记录下的文字,\r\n它属于我,也属于你,\r\n梦想是绚烂的,奔赴梦想的途中同样风光无限——边走边看,享受林间洒落一地的春光......',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}