社区
C#
帖子详情
DBGrid双击问题
牧童027
2003-12-15 09:37:06
添加了DBGrid的双击事件后,Mouse只有点在非Cell的区域内才有效!?
我想知道Mouse双击Cell区域后会发生什么事件?
...全文
116
8
打赏
收藏
DBGrid双击问题
添加了DBGrid的双击事件后,Mouse只有点在非Cell的区域内才有效!? 我想知道Mouse双击Cell区域后会发生什么事件?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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+鼠标左键
delphi 中
DB
Grid
应用全书
Delphi 中
DB
Grid
用法,Pascal语言
db
grid
有10个小程序,你觉得好就下载
VB数据库编程
DB
GRID
32.OCX部件导入及许可证信息注册工具
VB数据库编程
DB
GRID
32.OCX部件导入及许可证信息注册工具 解决
DB
Grid
控件放在窗体上时,谈出对话框“该部件的许可证信息没有找到。在设计环境中,没有合适的许可证使用该功能。”
手动编写
DB
Grid
控件的好例子
通过custom control,自己编写类来产生
DB
Grid
表格。
C#
111,097
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章