cbYwlb 是combox, 是不是写法有问题啊?好久不写代码了,请大家不要扔鸡蛋?//窗体加载
private void pz_Load(object sender, EventArgs e)
{
DataTable table = new DataTable();
data.SelectSQL(ref table, "select t.ywlbid, t.ywlbmc from yw t order by px");
cbYwlb.DataSource = table; //table 数据有2条
cbYwlb.DisplayMember = "ywlbmc";
cbYwlb.ValueMember = "ywlbid";
cbYwlb.SelectedIndex = 0; //想在加载后默认选中一条,可这里就报错了,跟踪这里 item.count=0
。。
}
private void pz_Load(object sender, EventArgs e)
{
DataTable table = new DataTable();
data.SelectSQL(ref table, "select t.ywlbid, t.ywlbmc from yw t order by px");
cbYwlb.DataSource = table; //table 数据有2条
cbYwlb.DisplayMember = "ywlbmc";
cbYwlb.ValueMember = "ywlbid";
cbYwlb.SelectedIndex = 0; //想在加载后默认选中一条,可这里就报错了,跟踪这里 item.count=0
。。
}
你可以加一个判断
DataTable table = new DataTable();
DataColumn c = new DataColumn("A");
DataColumn c1 = new DataColumn("A2");
table.Columns.Add(c);
table.Columns.Add(c1);
for (int i = 0; i < 4; i++)
{
DataRow r = table.NewRow();
r[0] = i.ToString();
r[1] = "name" + i.ToString();
table.Rows.Add(r); }
this.comboBox1.DataSource = table;
this.comboBox1.DisplayMember = "A2";
this.comboBox1.ValueMember = "A";
if(comboBox1.Items.Count>0)
{
this.comboBox1.SelectedIndex = 0;}
cbYwlb.SelectedIndex = 0;
cbYwlb中就没有item...
写成这样最好
try{
cbYwlb.SelectedIndex = 0;
}
catch
{}
cbYwlb.DataSource = table; //table 数据有2条
执行后item.count的值
你看下
在cbYwlb.DataSource = table; //table 数据有2条
设个断点跟踪下
如果这句执行完item.count =2 那么就是后面的代码把cbYwlb重新初始化了
如果item.count =0 且table 数据有2条 那么就不知道了 这种情况应该不可能