首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

请教一个关于suiStringGrid框选的有关问题,多谢

2012-12-23 
请问一个关于suiStringGrid框选的问题,谢谢!我用suiStringGrid画了一张表,用鼠标在表中拖动选择单元格,在E

请问一个关于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,谢谢谢谢

热点排行