社区
C#
帖子详情
DBGrid双击问题
牧童027
2003-12-15 09:37:06
添加了DBGrid的双击事件后,Mouse只有点在非Cell的区域内才有效!?
我想知道Mouse双击Cell区域后会发生什么事件?
...全文
115
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
双击
多选行的功能。通过自定义T
DB
Grid
组件并重写相关事件处理,我们可以为用户提供更直观、便捷的操作体验,使其能够像使用Ctrl+鼠标左键那样通过
双击
快速选择多行。这个解决...
delphi 中
DB
Grid
应用全书
例如,你可以编写如下代码来响应单元格的
双击
事件,打开一个新的窗体进行详细信息查看: ```pascal procedure TForm1.
DB
Grid
1
Db
lClick(Sender: TObject); begin if not VarIsNull(
DB
Grid
1.DataSet.Fiel
dB
yName('...
db
grid
4. **TUTOR6.FRM** 可能展示了如何处理
db
grid
的事件,比如单元格
双击
、行改变等,以便执行相应的业务逻辑。 5. **TUTOR10.FRM** 和 **TUTOR2.FRM** 可能涉及到了分页功能,对于大数据量的表,分页是提高用户体验的...
VB数据库编程
DB
GRID
32.OCX部件导入及许可证信息注册工具
然而,在使用
DB
Grid
控件时,有时会遇到一个常见
问题
,即“该部件的许可证信息没有找到”的错误提示。这个
问题
通常出现在尝试在设计界面中添加或使用
DB
Grid
控件时,系统无法找到必要的注册信息。
DB
GRID
32.OCX是一个...
手动编写
DB
Grid
控件的好例子
6. **用户交互**:实现用户与控件的交互,如单击、
双击
、拖动等。你需要处理WM_LBUTTONDOWN等消息,以及实现编辑单元格和排序等功能。 7. **性能优化**:对于大量数据,考虑使用虚拟化技术,只在需要时绘制可见部分...
C#
111,097
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章