TStringGrid OnDrawCell问题 我遇到一个问题,使用C++ + BuIDLexe4在TSTRGEGRID上使用DraceGrand。 在我的C++代码的一部分中,我把一些文本放在单元格中,比如在折叠行中: StringGrid1->Cells[x][y] = "1.0";

TStringGrid OnDrawCell问题 我遇到一个问题,使用C++ + BuIDLexe4在TSTRGEGRID上使用DraceGrand。 在我的C++代码的一部分中,我把一些文本放在单元格中,比如在折叠行中: StringGrid1->Cells[x][y] = "1.0";,c++,c++builder-xe4,C++,C++builder Xe4,在DrawCell事件中,当我这样做时: UnicodeString tmp = StringGrid1->Cells[ACol][ARow]; tmp为“1”(当ACol=x且ARow=y时)。我确信在我的代码中没有任何地方我在“1”中替换了“1.0”。所以如果有人能告诉我发生了什么,我会非常优雅的 在我的实验中,它有时工作,有时不工作(重新编译时) C++Builder的底层(即delphi层)是否有时会在TStringGrid后面交换(或类似的)StringGrid 您所描述的内容

在DrawCell事件中,当我这样做时:

UnicodeString tmp = StringGrid1->Cells[ACol][ARow];
tmp为“1”(当ACol=x且ARow=y时)。我确信在我的代码中没有任何地方我在“1”中替换了“1.0”。所以如果有人能告诉我发生了什么,我会非常优雅的

在我的实验中,它有时工作,有时不工作(重新编译时)


C++Builder的底层(即delphi层)是否有时会在TStringGrid后面交换(或类似的)StringGrid

您所描述的内容无法复制。
TStringGrid
控件运行良好。如果将字符串放入单元格,则该单元格将返回,直到您修改它为止


最有可能的是,您的程序中有其他内容正在修改此设置。为了让你追踪到这一点,我建议你做一个SSCCE。一旦你这样做了,你肯定会发现你困惑的原因。

这根本不会发生,除非你的代码中有什么地方发生了更改(或者没有按照你最初的想法进行分配)。谢谢你的回答。就像我说的,这段代码已经工作了,但现在不行,所以我会在我的SVN上搜索错误的更改。