如何自动刷新stringgrid。
我调用的是selectcell事件,在stringgrid完成一次显示的时候,我触发该事件。返回行号。
我想在不进行任何其他操作的情况下,点击同一位置,再次返回行号。但是这样做。有一点小问题
再次点的时候不返回行号。我觉得是应该刷新一下,但是如何刷新呢?
问题的规律。
在点击第一个位置之后,返回第一位置的行号。点击第二个位置,然后再点击第一个位置,这时才可以再次返回第一位置的行号。
我调用的是selectcell事件,在stringgrid完成一次显示的时候,我触发该事件。返回行号。
我想在不进行任何其他操作的情况下,点击同一位置,再次返回行号。但是这样做。有一点小问题
再次点的时候不返回行号。我觉得是应该刷新一下,但是如何刷新呢?
问题的规律。
在点击第一个位置之后,返回第一位置的行号。点击第二个位置,然后再点击第一个位置,这时才可以再次返回第一位置的行号。
//我给你想了一个办法,但不一定是最好的办法。//拖一个ApplicationEvents控件到Form上,然后在它的OnMessage事件写处理过程如下:procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
var
sClass: array[0..255] of char;
begin
FillChar(sClass, 256, #0);
GetClassName(Msg.hwnd, sClass, 256);
if (StrPas(@sClass[0]) = 'TStringGrid') or (StrPas(@sClass[0]) = 'TInplaceEdit') then
if Msg.message = WM_LButtonUp then
//Caption := Formatdatetime('hh:nn:ss', Now);
Showmessage(Format('%d,%d',[StringGrid1.Col, StringGrid1.Row]));
end;procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Options := StringGrid1.Options + [goEditing, goAlwaysShowEditor];
end;