怎么设置GridCtrl为不可编辑啊?

时间:2021-12-12 15:02:34
初始化的时候用了m_Grid.SetEditable(FALSE);但是不行。

还要加什么语句??请指点。

12 个解决方案

#1


直接在资源属性中设置一下试试。

#2


不行,资源中只能设为disable,但我的意思是想readonly.

如果disable,则GridCtrl的一些功能,例如列的大小拉伸就不能操作了。

#3


大家帮忙看看啊。

#4


感觉国庆节挺多人去休假了,回答问题的少了不少,羡慕啊:(

#5


如果不行的话,就加一句 m_Grid.RedrawWindow();

#6


to power4:我试了,不行啊。

还有什么办法吗?大家快帮忙啊!!!

#7


Up一下

#8


怎么会不行呢!怪!我给你我的代码
//
m_Grid.RedrawWindow();
m_Grid.SetEditable(FALSE);
m_Grid.SetListMode(FALSE);
m_Grid.EnableDragAndDrop(FALSE);

try {
m_Grid.SetRowCount(nRows);
m_Grid.SetColumnCount(nCols);
m_Grid.SetFixedRowCount(nFixRows);
m_Grid.SetFixedColumnCount(nFixCols);
}
//异常处理
catch (CMemoryException* e)
{
e->ReportError();
e->Delete();
return ;
}
m_Grid.SetGridColor(BLUE);
m_Grid.SetBkColor(ALLBackGround);
m_Grid.SetTextBkColor(WHITE);
m_Grid.SetFixedBkColor(WHITE);
//第一列
m_Grid.DisPlayRowTitle(QING,SHENGLAN,w0,height2,0, 0,"设备名");

#9


这个类我只是粗略看了一下,就设置了这几个属性,呵呵,你好好看看他的代码好了,还有很多功能,!!!!

#10


还是不行啊。我的代码:
m_Grid.RedrawWindow();
m_Grid.SetEditable(FALSE);
m_Grid.SetListMode(FALSE);
m_Grid.EnableDragAndDrop(FALSE);



try {
m_Grid.SetRowCount(20);
m_Grid.SetColumnCount(20);
m_Grid.SetFixedRowCount(1);
m_Grid.SetFixedColumnCount(1);
}
//异常处理
catch (CMemoryException* e)
{
e->ReportError();
e->Delete();
return FALSE;
}


我看了一下他的代码。
void SetEditable(BOOL bEditable = TRUE)       
{ m_bEditable = bEditable;          }

但是m_bEditable就只有在BOOL IsEditable() const                     { return m_bEditable;               }中出现过一次。没有其他实现语句。

你的代码是哪里载的,我也去载一个算了。

还是说要用其他语句?我觉得这个函数够了。

#11


还是不行啊。哪位大侠遇到过这种情况,快救救我

#12


唉,人比较笨,SetEditable()有时候行有时候不行,不懂为什么。哪位大侠可以教教我??


只好对每一格用m_Grid.SetItemState(row,col, m_Grid.GetItemState(row,col) | GVIS_READONLY);这样也可以实现readonly.


感谢power4的帮助。下午结贴。

#1


直接在资源属性中设置一下试试。

#2


不行,资源中只能设为disable,但我的意思是想readonly.

如果disable,则GridCtrl的一些功能,例如列的大小拉伸就不能操作了。

#3


大家帮忙看看啊。

#4


感觉国庆节挺多人去休假了,回答问题的少了不少,羡慕啊:(

#5


如果不行的话,就加一句 m_Grid.RedrawWindow();

#6


to power4:我试了,不行啊。

还有什么办法吗?大家快帮忙啊!!!

#7


Up一下

#8


怎么会不行呢!怪!我给你我的代码
//
m_Grid.RedrawWindow();
m_Grid.SetEditable(FALSE);
m_Grid.SetListMode(FALSE);
m_Grid.EnableDragAndDrop(FALSE);

try {
m_Grid.SetRowCount(nRows);
m_Grid.SetColumnCount(nCols);
m_Grid.SetFixedRowCount(nFixRows);
m_Grid.SetFixedColumnCount(nFixCols);
}
//异常处理
catch (CMemoryException* e)
{
e->ReportError();
e->Delete();
return ;
}
m_Grid.SetGridColor(BLUE);
m_Grid.SetBkColor(ALLBackGround);
m_Grid.SetTextBkColor(WHITE);
m_Grid.SetFixedBkColor(WHITE);
//第一列
m_Grid.DisPlayRowTitle(QING,SHENGLAN,w0,height2,0, 0,"设备名");

#9


这个类我只是粗略看了一下,就设置了这几个属性,呵呵,你好好看看他的代码好了,还有很多功能,!!!!

#10


还是不行啊。我的代码:
m_Grid.RedrawWindow();
m_Grid.SetEditable(FALSE);
m_Grid.SetListMode(FALSE);
m_Grid.EnableDragAndDrop(FALSE);



try {
m_Grid.SetRowCount(20);
m_Grid.SetColumnCount(20);
m_Grid.SetFixedRowCount(1);
m_Grid.SetFixedColumnCount(1);
}
//异常处理
catch (CMemoryException* e)
{
e->ReportError();
e->Delete();
return FALSE;
}


我看了一下他的代码。
void SetEditable(BOOL bEditable = TRUE)       
{ m_bEditable = bEditable;          }

但是m_bEditable就只有在BOOL IsEditable() const                     { return m_bEditable;               }中出现过一次。没有其他实现语句。

你的代码是哪里载的,我也去载一个算了。

还是说要用其他语句?我觉得这个函数够了。

#11


还是不行啊。哪位大侠遇到过这种情况,快救救我

#12


唉,人比较笨,SetEditable()有时候行有时候不行,不懂为什么。哪位大侠可以教教我??


只好对每一格用m_Grid.SetItemState(row,col, m_Grid.GetItemState(row,col) | GVIS_READONLY);这样也可以实现readonly.


感谢power4的帮助。下午结贴。