在StringGrid中用右键菜单实现复制粘贴
2008-02-23 05:38:22来源:互联网 阅读 ()
ccrun(老妖)本无心写这篇文章,因为功能及代码比较简单,恐有人不屑。只是在回复csdn一位朋友的帖子,久不写这种代码了,一时认真起来,把注释写了个周详,顺便就贴上来吧,也许对刚入门的朋友有所帮助。
所实现的效果就是在StrinGrid上点右键,然后弹出一个菜单,能够复制当前单元格中的内容,然后粘贴到其他单元格中。
在Form上放置一个PopupMenu,添加两个MenuItem,分明为miCopy和miPaste,然后在StringGrid的OnMouseUp事件和miCopy,miPaste的OnClick事件中添加以下代码:
#include <vcl\Clipbrd.hpp>
TPoint g_ptSelect; // 记录在StringGrid上点右键弹出菜单时的鼠标位置
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1MouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(Button == mbRight) // 在StringGrid上右点键
{
// 选中当前选中的单元格:
// 本文转自 C Builder 研究 - http://www.ccrun.com/article.asp?i=628&d=du0r06
int nCol, nRow;
StringGrid1->MouseToCell(X, Y, nCol, nRow);
// 假如在第一行或第一列,或不在单元格中,则不处理
if(nCol < 1 || nRow < 1)
return;
StringGrid1->Col = nCol;
StringGrid1->Row = nRow;
// 记录下当前的鼠标位置,因为在菜单弹出以后,鼠标选择菜单时坐标会改变
g_ptSelect = Mouse->CursorPos;
// 弹出菜单
PopupMenu1->Popup(Mouse->CursorPos.x, Mouse->CursorPos.y);
}
}
//---------------------------------------------------------------------------
// 63 63 72 75 6E 2E 63 6F 6D
void __fastcall TForm1::miCopyClick(TObject *Sender)
{
// 确定是复制哪个Cell
TPoint pt(StringGrid1->ScreenToClient(g_ptSelect));
int nCol, nRow;
StringGrid1->MouseToCell(pt.x, pt.y, nCol, nRow);
// 将选中的内容复制到剪贴板
Clipboard()->AsText = StringGrid1->Cells[nCol][nRow];
}
//---------------------------------------------------------------------------
void __fastcall TForm1::miPasteClick(TObject *Sender)
{
// 确定要粘贴到哪个Cell
TPoint pt(StringGrid1->ScreenToClient(g_ptSelect));
int nCol, nRow;
StringGrid1->MouseToCell(pt.x, pt.y, nCol, nRow);
// 将剪贴板中的内容粘贴到单元格
StringGrid1->Cells[nCol][nRow] = Clipboard()->AsText;
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 如何显示/隐藏IE浏览器工具窗口
下一篇: 利用子类化技术为DBGrid增加鼠标滚动
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash