datagrid 怎么获取任意单元格的值呢?不是当前选择行的值。

解决方案 »

  1.   

    看看DataGrid控件产生的那些类,看看里面的属性和函数。
      

  2.   

    这个DataGrid是直接使用Recordset字段内容的,行标始终等于Recordset的行标.
    //
    如果想在不影响DataGrid的情况下取当前记录的任意数据.
    可如下:Recordset  rst = DataGrid.Source.
    Recordset  rstRead;
    //
    rst.Clone( &rstRead, adReadOnly/*只有这样才能不影响*/);rstRead.sort = rst.sort
    rstRead.Filter = rst.Filter
    // 注: Clone的初始行集是基于 oledb的 IRowset.
    // 而ADO使用的是其对IRowset复用后的IASM
    // 所以要使 sort , Filter 一致,以保证行集一致.rstRead.SetAbsoultePosition( DestRow )
    rstRead.GetCollect( destCol_FieldName, Var );
    //
    //再注: ReadOnly 不包括正在ADDNEW的行
      

  3.   

    上面的看不懂,自己实现了:         m_datagrid.SetRow(2);
    m_datagrid.SetCol(3);
    CString pic=m_datagrid.GetText();
      

  4.   

    还有大家知道怎么获取datagrid的行数吗?
      

  5.   

    Use the DataGrid control's Columns collection's Count property and the Recordset object's RecordCount property to determine the number of columns and rows in the control. A DataGrid control can have as many rows as the system resources can support and up to 32767 columns.
      

  6.   

    我这总结了个关于DataGrid显示的文章,你可以去看一下,但愿有帮助.
    http://blog.csdn.net/F4427/archive/2006/09/26/1289349.aspx
      

  7.   


    m_grid.SetRow(2); CString ss = "";
    ss = m_grid.GetColumns().GetItem((_variant_t)(long)1).GetText(); m_grid.GetColumns().GetItem((_variant_t)(long)2).SetText("111"); ss = "";