m_gridTask.SetFixedRows(1);
m_gridTask.SetFixedCols(1);
m_gridTask.SetCols(0, 2);
    m_gridTask.SetSelectionMode(0);
m_gridTask.SetRows(3);
m_gridTask.SetRow(1); 
m_gridTask.SetCol(1); 
m_gridTask.SetText("a1"); 
m_gridTask.SetRow(2); 
m_gridTask.SetCol(1); 
m_gridTask.SetText("b2"); void CDdDlg::OnButton1() 
{
CString str; str.Format("%d", m_gridTask.GetRows());
AfxMessageBox(str);
    m_gridTask.AddItem("aa",COleVariant(long(2L))); 
str.Format("%d", m_gridTask.GetRows());
AfxMessageBox(str);
    m_gridTask.RemoveItem(2);
str.Format("%d", m_gridTask.GetRows());
AfxMessageBox(str);
}
我这段代码执行一次,ok,没问题,可以看到新加了一行又删除了,可是执行第二次,就看不见添加的行了,但是弹出的对话框上显示的行数却正确。大家说是不是很奇怪。希望大家帮我解答。(请不要说出了一个自己也不知道是否正确的解答就看不见人了)

解决方案 »

  1.   

    我用过这个控件。但没有用过AddItem和RemoveItem函数。不知道这两个函数是不是我们所想象的是增加一行和删除一行的功能。
    我一般用SetRows来设置控件的行数。用SetTextMatrix来设置每一格的数据。
    要删除一行,只需SetRows(GetRows()-1);
      

  2.   

    很奇怪,用你和程序试了一下,
    一点问题都没有,
    试几次都是正确的!(另外,m_gridTask.SetCols(0, 2);改为m_gridTask.SetCols(2);,
    没有两个参数)
      

  3.   

    忘记说了,我用的控件版本是Microsoft Hierarchical FlexGrid Control, Version 6.0 (OLEDB),我的操作系统是win2000 server。在我的机器上的确是有问题,否则我也不会来提问了。(另外,m_gridTask.SetCols(0, 2);改为m_gridTask.SetCols(2);
    在我的机器上会出错)