加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

vs2005 combox(winform) 绑定数据时触发SelectedIndexChanged的

发布时间:2020-12-17 02:50:12 所属栏目:安全 来源:网络整理
导读:今天遇到一个不小问题,vs2005里面自带的combox(winform)的问题. 问题:我将webservice发布的方法返回的数据集绑定到combox的dataSouce.然后设置这个combox的displaymenber和valuemenber. 步骤是这样: 1datatable-datasource 2.set datatalbe.字段1-displa

今天遇到一个不小问题,vs2005里面自带的combox(winform)的问题.

问题:我将webservice发布的方法返回的数据集绑定到combox的dataSouce.然后设置这个combox的displaymenber和valuemenber.

步骤是这样:

1datatable->datasource

2.set datatalbe.字段1->displaymenber

3set datatalbe.字段2->valuemenber

这样没有问题.

但当我在combox的SelectedIndexChanged事件中写了获取当前combox的已选择的类的编号属性的时候,发现总在报错.

数据项索引小于无穷大。

经调试发现:

程序执行到步骤1时没有继续执行步骤2,而是转向触发combox的SelectedIndexChanged事件。这时的combox没有绑定完数据,自然会报错了。

解决

设置一个bool类型,标志符IsBinded,在填充方法完毕后,设为true.允许SelectedIndexChanged被触发.

代码如下:

using ?System;

?System.Collections.Generic;

?System.ComponentModel;

?System.Data;

?System.Drawing;

?System.Text;

?System.Windows.Forms;

?SupplyProduct.WebReference;


namespace ?SupplyProduct

{

????
public?partialclass?Form1?:?Form

????
{

????????
privateint?_cityID=-1;

????????
bool?_isBinded?=false?CityID

????????
{

????????????
get

????????????
{

????????????????
if?(_cityID?<0)

????????????????????
return;

????????????????
?_cityID;

????????????}

????????????
set

????????????
{

????????????????_cityID?
?value;

????????????}

????????}

????????
?IsBinded

????????

????????????
?_isBinded;

????????????}

????????????
{

????????????????_isBinded?
?Form1()

????????
{

????????????InitializeComponent();

????????}


????????
void?Form1_Load(object?sender,?EventArgs?e)

????????
{

????????????CityID?
;

????????????BindCities(
ref?cbProvince);

????????????CityID?
?()cbProvince.SelectedValue;

????????????BindCities(
?cbCity);

????????}
?BindCities(?ComboBox?combox)

????????
{

????????????WSCitiesBLL?cityAPI?
new?WSCitiesBLL();

????????????chemchina.CitiesDataTable?cities?
?cityAPI.GetChildCties(CityID);

????????????combox.DataSource?
?cities;

????????????combox.DisplayMember?
"cityName;

????????????combox.ValueMember?
cityID;

????????????IsBinded?
true;

????????}
?cbProvince_SelectedIndexChanged(

????????
?(IsBinded&&cbProvince.SelectedValue!=null)

????????????
{

????????????????CityID?
)cbProvince.SelectedValue;

????????????????BindCities(
?cbCity);

????????????}

????}

}
?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读