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

c# – InvalidArgument =值’0’对’SelectedIndex’无效.参数名

发布时间:2020-12-15 08:40:26 所属栏目:百科 来源:网络整理
导读:我在尝试此代码时遇到上述错误.我试过给 just my code 但没用. (这是默认的) Here is my XML file 错误发生在cmbProduct_SelectedIndexChanged事件中. cmbProduct -- combobox cmbBrand -- combobox 全球 DataSet dsUpdate = new DataSet(); 的Form_Load dsU
我在尝试此代码时遇到上述错误.我试过给 just my code但没用. (这是默认的)

Here is my XML file

错误发生在cmbProduct_SelectedIndexChanged事件中.

cmbProduct --> combobox
        cmbBrand   --> combobox

全球

DataSet dsUpdate = new DataSet();

的Form_Load

dsUpdate.ReadXml(@".....stock.xml");
        cmbProduct.DataSource = dsUpdate.Tables[0]
            .DefaultView.ToTable(true,"productname");//.DefaultView;
        cmbProduct.DisplayMember = "productname";
        cmbProduct.SelectedIndex = 0;

cmbProduct_SelectedIndexChanged

cmbBrand.Items.Clear();
        foreach (DataRow Row in dsUpdate.Tables[0].Select("productname='" + cmbProduct.Text + "'"))
        {
            //cmbBrand.SelectedIndex = i;
            cmbBrand.Items.Add(Row["brandname"].ToString());
            //i++;
        } 
        cmbBrand.SelectedIndex = 0; /*ERROR*/

请帮忙
提前致谢.

解决方法

问题是:

当你启动应用程序时,cmbBrand中没有项目,但cmbProduct会触发SelectedIndexChanged.

试试这个:

从Form1.Designer.cs中删除SelectedIndexChanged事件初始化.尝试找到以下行:

this.cmbProduct.SelectedIndexChanged += new System.EventHandler(this.cmbProduct_SelectedIndexChanged);

之后,当您使用xml文件中的数据填充DataSet时,初始化SelectedIndexChanged事件:

dsUpdate.ReadXml(@".....stock.xml");
cmbProduct.DataSource = dsUpdate.Tables[0].DefaultView.ToTable(true,"productname");//.DefaultView;
cmbProduct.DisplayMember = "productname";
this.cmbProduct.SelectedIndexChanged += new System.EventHandler(this.cmbProduct_SelectedIndexChanged);
cmbProduct.SelectedIndex = 0;

(编辑:李大同)

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

    推荐文章
      热点阅读