建一个CurrencyManager cm ;
写个办法:
private void BindTextBox()
{
textbox1.DataBindings.Add("Text",this.table,"字段名");
....//可以绑定很多,也可是绑定到drowdownlist,啥都可以;
}
private somebutton_click(object sender ,EventArgs e)
{
...//填充this.table;
cm.Position = 0;//用表中第一行,绑定textbox1,或某行:cm.Position = n ;
}
写个办法:
private void BindTextBox()
{
textbox1.DataBindings.Add("Text",this.table,"字段名");
....//可以绑定很多,也可是绑定到drowdownlist,啥都可以;
}
private somebutton_click(object sender ,EventArgs e)
{
...//填充this.table;
cm.Position = 0;//用表中第一行,绑定textbox1,或某行:cm.Position = n ;
}
this.cm = (CurrencyManager)this.BindingContext[this.table];
//放在构造里面~~~
请英雄看源代码(此代码用于代替datagrid部分功能)
private void Form1_Load(object sender, System.EventArgs e)
{
Label[,] tx=new Label[50,3];
int ly=0;
int lx=0;
db.Columns.Add("aa");
db.Columns.Add("bb");
db.Columns.Add("cc");
DataRow dr;
for(int i=0;i<50;i++)
{
dr=db.NewRow();
dr["aa"]="a"+i.ToString();
dr["bb"]="b"+i.ToString();
dr["cc"]="c"+i.ToString();
db.Rows.Add(dr);
for(int j=0;j<3;j++)
{
tx[i,j]=new Label();
tx[i,j].Name="lb_"+i.ToString()+"_"+j.ToString();
tx[i,j].Click += new System.EventHandler(this.show);
tx[i,j].Size=new Size(50,20);
switch (j)
{
case 0:
tx[i,j].DataBindings.Add(new Binding("Text",this.db,"aa"));
CurrencyManager cm=(CurrencyManager)tx[i,j].BindingContext[this.db];
cm.Position=i;
break;
case 1:
tx[i,j].DataBindings.Add(new Binding("Text",this.db,"bb"));
break;
case 2:
tx[i,j].DataBindings.Add(new Binding("Text",this.db,"cc"));
break;
}
tx[i,j].BorderStyle=BorderStyle.None;
tx[i,j].BackColor=Color.White;
//tx[i,j].Text=i.ToString()+","+j.ToString();
this.panel1.Controls.Add(tx[i,j]);
tx[i,j].Location=new Point(lx,ly);
lx+=55;
}
lx=0;
ly+=22;
}
}
你自己写的方法是错误的
我是想用一个二维lable数组映射datatable中数据。
按头一位英雄的说法,数组中所有lable都只映射了datatable的一行。
麻烦英雄再看一下。