TStringGrid限制只选择一列的问题;

MEFULEU 2005-03-24 03:05:36
正常情况下,选择StringGrid的行列时,goRangeSelect范围并没有限制,有没有可能只限制选择一列?

比如当前选择的行列为
//.h
int mACol,mARow;;
//.hpp
void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol,
int ARow, bool &CanSelect)
{
mACol=ACol;
mARow= ARow;
}
那么我想让鼠标不管怎么的选中拖动,选中的范围必须限制在mACol列;

有什么办法呢???

各位大大请不吝执教!

...全文
150 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
MEFULEU 2005-03-24
  • 打赏
  • 举报
回复
想模拟一下excel自动选择一列後,数据自动复制的功能!

我这里只是重绘stringgrid而已,看起来就像只选择了一列;不管你选择了多大的范围!
constantine 2005-03-24
  • 打赏
  • 举报
回复
那我接分好了
MEFULEU 2005-03-24
  • 打赏
  • 举报
回复
自己搞丁:

void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
AnsiString tmpstr;
if ((ACol!= mACol) && (ACol>0) && (ARow>0))
{
StringGrid1->Canvas->Brush->Color=StringGrid1->Color;
StringGrid1->Canvas->Font->Color= StringGrid1->Font->Color;
}
AnsiString text = StringGrid1->Cells[ACol][ARow];
StringGrid1->Canvas->TextRect(Rect, Rect.Left, Rect.Top, text);


}
我不懂电脑 2005-03-24
  • 打赏
  • 举报
回复
参照这个

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TGridRect myRect;
myRect.Left = 3;
myRect.Top = 1;
myRect.Right = 2;
myRect.Bottom = 4;
StringGrid1->Selection = myRect;
}
sharkxie 2005-03-24
  • 打赏
  • 举报
回复
学习!
同时想问楼主什么情况需要有这种需求?谢谢!
编译失败 2005-03-24
  • 打赏
  • 举报
回复
在事件OnSelectCell中
void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol,
int ARow, bool &CanSelect)
{
if (ACol!=2) CanSelect=false;
}

551

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧