stringgrid fixedrows 行, 不能触发事件, 该如何做
stringgrid fixedrows 行, 不能触发事件, 该怎么做?
双击stringgrid fixedrows 行,发生什么事件
stringgrid
fixedrows:=1
我想在双击第一行时,做指定的事情.
现在发现,当设置了fixedrows=1时,无论,单击或双击第一行,都不会引发click或dbclick事件,该如何做?
------解决思路----------------------
在StringGrid.onClick或dblClick事件中获取StringGrid.MouseCoord;其中X代表列序号,Y代表行序号。由xy判断所点击的位置。
------解决思路----------------------
找到点击的位置,就可以做你想做的事情了。说白点,就是把你想做的事情发在StringGrid.onClick或dblClick事件中
------解决思路----------------------
Double Click事件是可以用的,但是要自己在Double Click事件里通过鼠标位置查找鼠标所在的行列
随便扔一个StringGrid (StringGrid1)在窗体Form1上,然后StringGrid1的 Double Click事件里
------解决思路----------------------
就是这样的啦。目的就是:既然在Fix行无法触发,就退到Grid自身的Click事件来做。
双击stringgrid fixedrows 行,发生什么事件
stringgrid
fixedrows:=1
我想在双击第一行时,做指定的事情.
现在发现,当设置了fixedrows=1时,无论,单击或双击第一行,都不会引发click或dbclick事件,该如何做?
------解决思路----------------------
在StringGrid.onClick或dblClick事件中获取StringGrid.MouseCoord;其中X代表列序号,Y代表行序号。由xy判断所点击的位置。
------解决思路----------------------
找到点击的位置,就可以做你想做的事情了。说白点,就是把你想做的事情发在StringGrid.onClick或dblClick事件中
------解决思路----------------------
Double Click事件是可以用的,但是要自己在Double Click事件里通过鼠标位置查找鼠标所在的行列
随便扔一个StringGrid (StringGrid1)在窗体Form1上,然后StringGrid1的 Double Click事件里
procedure TForm1.StringGrid1DblClick(Sender: TObject);
var
lpPoint: TPoint;
nRow, nCol: Integer;
begin
if getCursorPos(lpPoint) then
begin
StringGrid1.MouseToCell(lpPoint.x-self.Left-StringGrid1.Left,lpPoint.y-self.Top-StringGrid1.Top, nCol,nRow);
showMessage(intToStr(nRow)+','+intToStr(nCol));
end ;
end;
------解决思路----------------------
Double Click事件是可以用的,但是要自己在Double Click事件里通过鼠标位置查找鼠标所在的行列
随便扔一个StringGrid (StringGrid1)在窗体Form1上,然后StringGrid1的 Double Click事件里
procedure TForm1.StringGrid1DblClick(Sender: TObject);
var
lpPoint: TPoint;
nRow, nCol: Integer;
begin
if getCursorPos(lpPoint) then
begin
StringGrid1.MouseToCell(lpPoint.x-self.Left-StringGrid1.Left,lpPoint.y-self.Top-StringGrid1.Top, nCol,nRow);
showMessage(intToStr(nRow)+','+intToStr(nCol));
end ;
end;
就是这样的啦。目的就是:既然在Fix行无法触发,就退到Grid自身的Click事件来做。