日期:2014-05-20  浏览次数:21031 次

ListBox.Items.Count>0 但執行ListBox.SelectedIndex=0 時確出錯.Index was outside the bounds of the array
我是在一個TabControl中放的ListBox   ,每個TabPage中都有一個ListBox.
在雙擊了當前TabPage中的ListBox後.給所有TabPage中的ListBox設置數據源屬性.

是這樣寫的.但在執行到給不是當前TabPage中的ListBox設置數據源屬性時,執行到
ListBox   .SelectedIndex   =   0(Items.Count> 0)   就會出現Index   was   outside   the   bounds   of   the   array錯誤.
若我打開程式後.每個TabPage都點一遍後.就不會出錯.
不知道是不是.Net的Bug?大家有沒碰到過.

                ListBox   .DataSource   =   ds.Tables(0)
                ListBox   .DisplayMember   =   ds.Tables(0).Columns(1).ColumnName
                ListBox   .ValueMember   =   ds.Tables(0).Columns(0).ColumnName
              ListBox   .Items.Count   >   0   Then   ListBox   .SelectedIndex   =   0


------解决方案--------------------
你这是VB的语法啊,怎么提问到C#了,
If ListBox .Items.Count > 0 Then ListBox .SelectedIndex = 0这里是不是少了If?
C#:
if (listBox.Items.Count > 0)
{
listBox.SelectedIndex = 0;
}
------解决方案--------------------
能把异常的具体信息贴出来看下吗?
------解决方案--------------------
是不是因为你没有点选界面上面的ListBox造成的?
------解决方案--------------------
你可以用DEBUG看一下,你每点一个TAB PAGE会发生什么,你只写这些代码肯定是没有错的。(我想你这些代码都不是在一起的)因为有些EVENT是会在你给PROPERTY时就会RISE的,比如你这里给DisplayMember 时就会出生好像是DataMember_Changed事件的,你看看你是否在这个事件里做了点什么?
------解决方案--------------------
我觉得楼主给的信息可能不够分析问题所在.