ComboBox a = new ComboBox();
Fill.List(a);//在这个方法里把ComboBox绑上了数据for(int i=0;i<10;i++)
{
ComboBox t = new ComboBox();
t = a;
}ComboBox v = new ComboBox();
v = a;为什么显示出来的控件v上有绑定的值,,,,在循环里创建的就都没有呢还不显示。。为什么

解决方案 »

  1.   

    是不是没有把循环中建立的combobox控件加入到容器中呀!!
      

  2.   

    to 为什么显示出来的控件v上有绑定的值,,,,在循环里创建的就都没有呢还不显示。。为什么你循环中的combobox是否加载到容器中,例如:form或者panel之类。
      

  3.   

    老大们,,,,一定加了,,,加到父容器中了。一定加了 ComboBox c = new ComboBox();
    c.Location = new System.Drawing.Point(0,0);
    c.Size = new System.Drawing.Size(150, 20);
    c.Text = "aaaaaaaaaaa";
    for(int i=0;i<3;i++)
    {
    ComboBox a = c;
    a.Location = new System.Drawing.Point(0,i*25);
    this.Controls.Add(a);
    }
    这是测试的例子,就出来一个,,哪个老大指点一下
      

  4.   

    for(int i=0;i<10;i++)
    {
    ComboBox t = new ComboBox();
    t = a;
    }
    這樣可以嗎?
    for(int i = 0 ; i < 10 ; i++)
    {
    ComboBox t[i] = new ComboBox();
    t[i] = a;
    }
    這樣吧,要不你new了10個一樣的ComboBox有什麼用呢?
      

  5.   

    this.Controls.Add(t[i]);
    在循環中還要加上這句,剛才忘記寫了,這樣才是10個實例化呀。
      

  6.   

    因為你隻new了一個ComboBox呀
    ComboBox c = new ComboBox();
    c.Location = new System.Drawing.Point(0,0);
    c.Size = new System.Drawing.Size(150, 20);
    c.Text = "aaaaaaaaaaa";
    ComboBox[] a = new ComboBox[3];
    for(int i=0;i<3;i++)
    {
    a[i] = new ComboBox();
    a[i].Location = new System.Drawing.Point(5*i,i*25);
    this.Controls.Add(a[i]);
    }
    試試這個,我已經測試好了。可以的。
      

  7.   

    因為你隻new了一個ComboBox呀
    for(int i=0;i<3;i++)
    {
    TextBox a = new TextBox();
    a.Location = new System.Drawing.Point(0,i*25);
    this.Controls.Add(a);
    }这样怎么能出来三个
      

  8.   

    c.Location = new System.Drawing.Point(0,0);
    c.Size = new System.Drawing.Size(150, 20);
    c.Text = "aaaaaaaaaaa";
    ComboBox[] a = new ComboBox[3];
    for(int i=0;i<3;i++)
    {
    a[i] = c;/////哥们是这,,,,
    a[i].Location = new System.Drawing.Point(5*i,i*25);
    this.Controls.Add(a[i]);
    }
      

  9.   

    这是引用类型对象的问题
    C#中除了int,bool,string等为简单类型外
    其他所有的class都是引用类型
    引用类型使用赋值操作实际赋的是内存地址,即“浅拷贝”
    只有简单类型使用赋值操作才是赋变量的值,即“深拷贝”例
    ComboBox a = new ComboBox();
    ComboBox t = new ComboBox();
    t = a ;
    则 t和a指向同一块内存区域
    即使是
    ComboBox a = new ComboBox();
    for(int i=0;i<10;i++)
    {
    ComboBox t = new ComboBox();
    t = a ;
    }
    结果仍然是所有的t指向同一个a
    解决方法可以试试
    for(int i=0;i<10;i++)
    {
    ComboBox t = new ComboBox();
    Fill.list(t);
    }
      

  10.   

    10个对像指向一块内存,,它应有10对像呀
    为什么在控件这块它就显示1个。。
    TMD烦死我了
      

  11.   

    实在不清楚,你为何要这样做,即
    ComboBox t = new ComboBox();
    t = a;//这一步把前面的new的操作全部抵消了就相当于
    ComboBox t = a;如果你的目的是把所有的combobox绑定同一个数据源的话,你需要手动逐个绑定。
      

  12.   

    循环创建的combobox的数据源都是一样的读数据库出来的。
    只是当前的selectindex不一样
    如果在循环里为每个新创建的combobox绑定datatableDataTable dt = GetData();for(int i=0;i++;i<dt.Rows.Count)
    {
    ComboBox c = new ComboBox();
    c.DataSource = dt;
    ........
    }
    像上面这样的话,,
    在窗口中选中其中一个combobox,改变它的selectIndex的时候,,,循环创建的combobox全都跟着动烦死了所以我就想用这个办法DataTable dt = GetData();
    ComboBox a = new ComboBox();
    a.DataSource = dt;
    .....
    for(int i=0;i++;i<dt.Rows.Count)
    {
    ComboBox c = a;
    ........
    }
    但是就出来最后一个。。
      

  13.   

    是不是for里面的变量的生命周期结束了。
      

  14.   

    to 
    DataTable dt = GetData();
    for(int i=0;i++;i<dt.Rows.Count)
    {
    ComboBox c = new ComboBox();
    c.DataSource = dt;
    ........
    }
    像上面这样的话,,
    在窗口中选中其中一个combobox,改变它的selectIndex的时候,,,循环创建的combobox全都跟着动你设数据源的方式不对,你应该用DataView去设置,就不会出现联动,例如:
    DataTable dt = GetData();
    for(int i=0;i++;i<dt.Rows.Count)
    {
    ComboBox c = new ComboBox();
    c.DataSource = new DataView(dt);
    ........
    }
      

  15.   

    Sample code as follows(VS2003):DataTable dtTree = new DataTable( "TreeDBInfo" );// Add new data columns
    DataColumn dc = new DataColumn( "EmployeeID", typeof(int) );
    dtTree.Columns.Add( dc );
    // Set primary key column
    dtTree.PrimaryKey = new DataColumn[]{dc};dtTree.Columns.Add( new DataColumn( "EmployeeName", typeof(string) ) );
    dtTree.Columns.Add( new DataColumn( "Age", typeof(int) ) );
    dtTree.Columns.Add( new DataColumn( "Salary", typeof(double) ) );
    dtTree.Columns.Add( new DataColumn( "Address", typeof(string) ) );
    dtTree.Columns.Add( new DataColumn( "EmpParentID", typeof(int) ) );// Add records into table
    //'0' is that the type has no parent
    dtTree.Rows.Add( new object[]{1, "Parent1",30, 2000,"***", 0} );
    dtTree.Rows.Add( new object[]{2, "Parent2",30, 2000,"***", 0} );
    dtTree.Rows.Add( new object[]{3, "Parent3",32, 2000,"***", 0} );dtTree.Rows.Add( new object[]{4, "Child1",25, 1400,"***", 1} );
    dtTree.Rows.Add( new object[]{5, "Child2",27, 1600,"***", 1} );
    dtTree.Rows.Add( new object[]{6, "Child3",27, 1600,"***", 2} );dtTree.Rows.Add( new object[]{7, "GrandChild1",23, 1200,"***", 4} );
    dtTree.Rows.Add( new object[]{8, "GrandChild2",23, 1200,"***", 4} );
    dtTree.Rows.Add( new object[]{9, "GrandChild3",22, 1200,"***", 5} );comboBox1.DataSource = new DataView( dtTree );
    comboBox1.DisplayMember = "EmployeeName";
    comboBox1.ValueMember = "EmployeeID";for( int i = 0; i < 5; i++ )
    {
    ComboBox cmbNew = new ComboBox();
    cmbNew.Location = new Point( 100, 140 + 40 * i );
    cmbNew.DataSource = new DataView( dtTree );
    cmbNew.DisplayMember = "EmployeeName";
    cmbNew.ValueMember = "EmployeeID";
    this.Controls.Add( cmbNew );
    }