请问一个关于suiStringGrid框选的问题,谢谢!
我用suiStringGrid画了一张表,用鼠标在表中拖动选择单元格,在Edit1、2里显示的是开始框选的单元格的行列号,Edit3、4里是结束的单元格行列号,下面是代码。结果有个问题,开始的行列号没有问题,但是,如果我按住鼠标左键拖动时,比如我想框选2X2的单元格,结果我选多了,框选成3X3的了,这时,我并没有松开鼠标左键,退回到2X2的位置松开鼠标,结束的单元格行列号还是显示的是刚才拖动错误的那个,也就是说,按住左键向右拖动,结束单元格的行列号会跟着走,都是对的,但是向左拖动,结束的单元格的行列号就不动了,请问这个问题怎么解决呢?万分感谢!
void __fastcall TForm1::suiStringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
if(ACol>=0&&ARow>=0)
{
if(State.Contains(gdSelected))
{
suiStringGrid1->Canvas->Brush->Color=clBlue;
suiStringGrid1->Brush->Style=bsSolid;
suiStringGrid1->Canvas->FillRect(Rect);
if(ACol<15&&ARow<15)
{
start1=(ARow+1);
start2=(ACol+1);
Edit4->Text=start1;
Edit3->Text=start2;
return;
}
return;
}
}
}
//---------------------------------------
void __fastcall TForm1::suiStringGrid1SelectCell(TObject *Sender, int ACol,
int ARow, bool &CanSelect)
{
if(ACol<15&&ARow<15)
{
start1=(ARow+1);
start2=(ACol+1);
Edit1->Text=start1;
Edit2->Text=start2;
return;
}
}
[解决办法]
哪位高手帮帮忙,小弟初学C++ Builder,谢谢谢谢