社区
C#
帖子详情
DBGrid双击问题
牧童027
2003-12-15 09:37:06
添加了DBGrid的双击事件后,Mouse只有点在非Cell的区域内才有效!?
我想知道Mouse双击Cell区域后会发生什么事件?
...全文
101
8
打赏
收藏
DBGrid双击问题
添加了DBGrid的双击事件后,Mouse只有点在非Cell的区域内才有效!? 我想知道Mouse双击Cell区域后会发生什么事件?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xsen
2003-12-16
打赏
举报
回复
呵呵,若还不懂,详细请见Henry的专栏!
xsen
2003-12-16
打赏
举报
回复
wd_318(饭加加)说得对,如果需要处理两种双击事件可看下面得方法!
1、首先定义变量: private DateTime gridMouseDownTime;
2、然后重写要点击的Cell的列的TextBox的MouseDown函数,如下为重写了第一和第列的cell双击响应:
DataGridTextBoxColumn aColumnTextColumn;
if ( i == 0 || i == 3 )
{
aColumnTextColumn.TextBox.MouseDown += new MouseEventHandler(TextBoxMouseDownHandler);
}
3、再在MouseDown函数获取当前时间:
private void dgrd_SellTable_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
//获取当前点击鼠标时的时间
DataGrid myGrid = (DataGrid)sender;
System.Windows.Forms.DataGrid.HitTestInfo myHitTest;
// Use the DataGrid control's HitTest method with the x and y properties.
myHitTest = this.dgrd_SellTable.HitTest(e.X,e.Y);
if ( myHitTest.Type == System.Windows.Forms.DataGrid.HitTestType.Cell )
gridMouseDownTime = DateTime.Now;
}
4、private void TextBoxMouseDownHandler(object sender, MouseEventArgs e )
{
//第一个判断条件:在单元格的textbox中的双击(即单击DataCell,使它获得焦点后,然后再响应该Cell中的双击事件)
//第二个判断条件:DataGrid 的 DoubleClick(直接双击Cell就响应双击事件,无须先单击Cell,使它获得焦点,然后再响应双击事件)
//判断时间间隔是否小于控制面板中所定义的双击间隔时间
if( e.Button == MouseButtons.Left && e.Clicks == 2 || DateTime.Now < gridMouseDownTime.AddMilliseconds(SystemInformation.DoubleClickTime))
//写你想做的事!
}
simanh
2003-12-15
打赏
举报
回复
up
wd_318
2003-12-15
打赏
举报
回复
http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q869q
这儿有演示捕捉双击事件的程序
wd_318
2003-12-15
打赏
举报
回复
对DataGrid的双击事件会成两种情况:
1、如果你双击的是你当前已经得到焦点的CELL,那么这个CELL内含的控件(一般默认的都是TextBox)会触发双击事件
2、如果你双击的不是已经得到焦点的CELL,那么这个双击是这样的:第一次点下,会触发DataGrid的Click事件,并使被点的格子取得焦点,第二次则是触发了这个CELL内含的控件(一般默认的都是TextBox)的Click事件.
wincarf
2003-12-15
打赏
举报
回复
你要检测这个事件干什么呢,如果要获得双击的cell的值可以使用CurrentCellChanged,还有click这些事件啊,如果要捕获数据更改,要绑定datasource(如datatable的onrowchanged事件)之列的
亚非
2003-12-15
打赏
举报
回复
自定义MouseDown事件,我的代码如下:
private void dataGrid1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if((e.Button==MouseButtons.Left)&&(e.Clicks==2))
{
if(this.dataGrid1.CurrentCell.ColumnNumber!=-1)
{
MessageBox.Show(this.dataGrid1.CurrentCell.ToString());
}
}
}
xsen
2003-12-15
打赏
举报
回复
up!遇到同样问题!高手快来解决啊
delphi
DB
Grid
双击
多选行
解决delphi鼠标
双击
DB
Grid
双击
不能多选行的
问题
,代替Ctrl+鼠标左键
PReport
CReport基础上修改,改动幅度很大,支持Delphi 72 如何从无到有新建一张报表:先将TPRExcute控件拖到窗口上,设置Datasources属性,然后
双击
TPRExcute控件即可开始创建报表过程3 支持普通列表,可以从
DB
Grid
直接生成报表...
PReport中式报表
CReport基础上修改,改动幅度很大,支持Delphi 72 如何从无到有新建一张报表:先将TPRExcute控件拖到窗口上,设置Datasources属性,然后
双击
TPRExcute控件即可开始创建报表过程3 支持普通列表,可以从
DB
Grid
直接生成报表...
C++Builder精彩编程实例集锦的源代码(4,5,6部分).rar
实例186 如何获取和设置鼠标
双击
响应速度 实例187 如何弹出和关闭光驱 实例188 如何检测网络连接 实例189 如何创建拨号网络 第六部分 数据库应用 实例190 如何创建不写代码的数据库程序 实例191 如何添加...
Delphi开发技巧之-VCL
为Listview栏添加
双击
事件 为工具栏的TToolButton设置新的索引 仅通过Classname创建和管理任意窗体 从RichEdit取Rtf格式 从TListBox中拖放项目到TRichEdit 从一个TRichedit复制格式Rtf文本到其它 使用CustomSort方法...
C#
110,567
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章