我把一个textbox绑定到ds上txtCouse.DataBindings.Add(new Binding("Text",dsbasic,"Plans.CourseName"));但是他显示的是第一行的数据呢?怎样实现显示前一行数据和后一行数据
2.
我想实现隐藏winform下的datagrid的某一行我是这样想的
DataGridTableStyle ts = new DataGridTableStyle();
            ts.MappingName = dgPlan.DataMember;
// Add it to the datagrid's TableStyles collection
dgPlan.TableStyles.Add(ts); // Hide the first column (index 0)
dgPlan.TableStyles[0].GridColumnStyles[0].Width = 0;可是每次到了最后却会报一个下标越界的错误,我跟踪发现
dgPlan.TableStyles[0].GridColumnStyles.Count为0,这个是什么原因呢?请大家指点一下!

解决方案 »

  1.   

    第一个问题,请参考MSDN中对CurrencyManager类的讲解,该类用来维护数据源中的位置以及与被绑定控件之间数据交换。该对象有Position属性用来读取/设置当前行
    第二个问题,DataGridTableStyle只能隐藏列不能隐藏行,要隐藏行请从DataTable上构造DataView并利用其Filter属性过滤掉你要隐藏的行
      

  2.   

    1。 this.bindingcontext[ds,"table"].position ++  '下一行,--就是上一行。总之就是改变position的值来导航。
      

  3.   

    2。一个笨办法,确定要隐藏的行后,把这个行赋值给一个datarow对象,然后将其从ds中删除。ds与datagrid绑定后就不会显示这一行
       要显示这行的时候再将刚才赋值的datarow插入到ds中不知可行不,我只是这样想
      

  4.   

    the upstair guy's answer is quit right
      

  5.   

    隐藏建议使用“晴天坊”的方法,如果想显示的时候直接更改filter就行了,而不用再去InsertRow
      

  6.   

    我想实现隐藏winform下的datagrid的某一列!我是这样想的
    DataGridTableStyle ts = new DataGridTableStyle();
                ts.MappingName = dgPlan.DataMember;
    // Add it to the datagrid's TableStyles collection
    dgPlan.TableStyles.Add(ts); // Hide the first column (index 0)
    dgPlan.TableStyles[0].GridColumnStyles[0].Width = 0;可是每次到了最后却会报一个下标越界的错误,我跟踪发现
    dgPlan.TableStyles[0].GridColumnStyles.Count为0,这个是什么原因呢?请大家指点一下!
      

  7.   

    在WinFrom有这样一个方法
    public void palyText()//显示数据
    {
    int cnt;
    cnt=this.BindingContext[ds,"Employees"].Position;
    Text1.Text=ds.Tables["Employees"].Rows[cnt][1].ToString();
    }private void button1_Click(object sender, System.EventArgs e)//第一条记录
    {
    this.BindingContext[ds,"Employees"].Position=0;//ds数据集
    palyText();
    }private void button2_Click(object sender, System.EventArgs e)后退
    {
    this.BindingContext[ds,"Employees"].Position --;
    palyText();
    }private void button3_Click(object sender, System.EventArgs e)前移
    {
    this.BindingContext[ds,"Employees"].Position++;
    palyText();
    }private void button4_Click(object sender, System.EventArgs e)//最后一条记录
    {
    this.BindingContext[ds,"Employees"].Position=this.BindingContext[ds,"Employees"].Count-1;
    palyText();
    }
    //不知WebForm里有没有这个方法;
      

  8.   

    可是我也在代码中添加了
    this.BindingContext[dataSet11].Position++;
    Console.Write(this.BindingContext[dataSet11].Position);可是每次都输出的0
    是怎么回事呢??
    大家指点一下呢?
      

  9.   

    DataGridTableStyle ts = new DataGridTableStyle();
    ts.MappingName = dataGrid1.DataMember;
    dataGrid1.TableStyles.Add(ts);
    dataGrid1.TableStyles[0].GridColumnStyles.RemoveAt(0);//删除index = 0 列;
      

  10.   

    隐藏列在winform 有这么费劲吗??你在属性栏中可视化的设置可以啊
      

  11.   

    核心代码:
    this.tbcORDER_ID.Width = 0;部分代码演示:
    private System.Windows.Forms.DataGridTextBoxColumn tbcORDER_ID;
    this.tbcORDER_ID = new System.Windows.Forms.DataGridTextBoxColumn();
    this.tbcORDER_ID.Format = "";
    this.tbcORDER_ID.FormatInfo = null;
    this.tbcORDER_ID.HeaderText = "订单号";
    this.tbcORDER_ID.MappingName = "ORDER_ID";
    this.tbcORDER_ID.NullText = "";
    this.tbcORDER_ID.Width = 0;
    this.tableStyle.GridColumnStyles.AddRange(new System.Windows.Forms.DataGridColumnStyle[] {
     this.tbcORDER_ID});
    this.dgOrderList.DataSource = this.FDsOrder.Tables[0];