微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

问题:我将webservice发布的方法返回的数据集绑定到comBox的dataSouce.然后设置这个comBoxdisplaymenber和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);

            }

    }

}
 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐