在DataGrid与ADODC控件相连接后,我想双击一条记录,让PictureBox显示该条记录的照片,但是在Private Sub DataGrid1_DblClick()里设置的话,鼠标没有选中记录的情况下双击时也响应了(当鼠标双击DataGrid的空白地方),也显示了照片!
怎样让鼠标没有选中时不响应双击事件呢?
怎样让鼠标没有选中时不响应双击事件呢?
解决方案 »
- 日期转换的问题
- 一个网页下有若干个iframe,每个iframe下又有若干个数目不等的子iframe,每个子iframe下又有若干个数目不等的孙iframe,...如何枚举出全部的iframe?
- 如何用vb获得已知句柄的syslistview控件的内容
- :等急: 为什么会把信息累计到一起发送呢? 如何在循环中一条条发送信息,Winsock控件问题!!
- 请问我要是把用access做数据库的程序放在架设的局域网上使用,应该怎样写连接服务器端的连接字符串啊?谢谢!
- 如何在程序中播放透明Falsh?
- 如何判断WORD中是否已插入艺术字
- 怎么没人提问?我好想要分。
- 祝各位CSDN上的朋友:新年快乐!
- 控件数组中,当删掉其中一个后,其他的控件数组不重新分配,导致中间删掉的那个index空缺,如何是好?
- SQl 标识列,如何恢复到没有添加记录前的状态?
- 如何在一个类模块中使用另一个类模块的连接???
if rs.not bof and rs.not eof then
...
end if
end sub
Private Sub DataGrid1_DblClick()
if not rs.bof and not rs.eof then
...
end if
end sub
If dgAssetFind.Row < 0 Then
Exit Sub
End If
。
End Sub
Private Sub dgAssetFind_DblClick()
If dgAssetFind.Row =< 0 Then
Exit Sub
End If
。
End Sub
Option Explicit On Imports Microsoft.VisualBasic
Imports System
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Windows.FormsNamespace DataGridDoubleClick
Public Class Form1
Inherits Form
Private WithEvents dataGrid1 As DataGrid
Private WithEvents myDataSet As DataSet
Private gridMouseDownTime As DateTime
Private components As Container Public Sub New()
MyBase.New()
InitializeComponent()
gridMouseDownTime = DateTime.Now
SetUp() End Sub
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then
If (Not (components) Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing) End Sub
Private Sub SetUp()
MakeDataSet()
dataGrid1.SetDataBinding(myDataSet, "Customers")
AddCustomDataTableStyle()
End Sub
Private Sub MakeDataSet()
myDataSet = New DataSet("myDataSet")
Dim tCust As DataTable
tCust = New DataTable("Customers")
Dim cCustID As DataColumn
cCustID = New DataColumn("custID")
Dim cCustName As DataColumn
cCustName = New DataColumn("custName")
Dim cCurrent As DataColumn
cCurrent = New DataColumn("custCity")
tCust.Columns.Add(cCustID)
tCust.Columns.Add(cCustName)
tCust.Columns.Add(cCurrent)
myDataSet.Tables.Add(tCust)
Dim newRow1 As DataRow
Dim i As Integer
i = 1 Do While (i < 4)
newRow1 = tCust.NewRow
newRow1("custID") = i.ToString()
tCust.Rows.Add(newRow1)
i = (i + 1)
Loop
tCust.Rows(0)("custName") = "【孟宪会之精彩世界】"
tCust.Rows(1)("custName") = "net_lover"
tCust.Rows(2)("custName") = "http://xml.sz.luohuedu.net/"
tCust.Rows(0)("custCity") = "北京"
tCust.Rows(1)("custCity") = "上海"
tCust.Rows(2)("custCity") = "河南" End Sub
Private Sub AddCustomDataTableStyle() Dim ts1 As DataGridTableStyle
ts1 = New DataGridTableStyle()
ts1.MappingName = "Customers"
ts1.AlternatingBackColor = Color.LightGray Dim TextCol As DataGridTextBoxColumn
TextCol = New DataGridTextBoxColumn()
TextCol.MappingName = "custID"
TextCol.HeaderText = "序号"
TextCol.Width = 100 AddHandler TextCol.TextBox.MouseDown, New MouseEventHandler(AddressOf TextBoxMouseDownHandler)
AddHandler TextCol.TextBox.DoubleClick, New EventHandler(AddressOf TextBoxDoubleClickHandler)
ts1.GridColumnStyles.Add(TextCol)
TextCol = New DataGridTextBoxColumn()
TextCol.MappingName = "custName"
TextCol.HeaderText = "姓名"
TextCol.Width = 100 AddHandler TextCol.TextBox.MouseDown, New MouseEventHandler(AddressOf TextBoxMouseDownHandler)
AddHandler TextCol.TextBox.DoubleClick, New EventHandler(AddressOf TextBoxDoubleClickHandler)
ts1.GridColumnStyles.Add(TextCol)
TextCol = New DataGridTextBoxColumn()
TextCol.MappingName = "custCity"
TextCol.HeaderText = "地址"
TextCol.Width = 100 AddHandler TextCol.TextBox.MouseDown, New MouseEventHandler(AddressOf TextBoxMouseDownHandler)
AddHandler TextCol.TextBox.DoubleClick, New EventHandler(AddressOf TextBoxDoubleClickHandler)
ts1.GridColumnStyles.Add(TextCol)
dataGrid1.TableStyles.Add(ts1) End Sub
Friend WithEvents Label1 As System.Windows.Forms.Label
Private Sub InitializeComponent()
Me.dataGrid1 = New System.Windows.Forms.DataGrid()
Me.Label1 = New System.Windows.Forms.Label()
CType(Me.dataGrid1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'dataGrid1
'
Me.dataGrid1.CaptionVisible = False
Me.dataGrid1.DataMember = ""
Me.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText
Me.dataGrid1.Location = New System.Drawing.Point(12, 8)
Me.dataGrid1.Name = "dataGrid1"
Me.dataGrid1.Size = New System.Drawing.Size(368, 128)
Me.dataGrid1.TabIndex = 0
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(10, 149)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(370, 23)
Me.Label1.TabIndex = 1
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(388, 189)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Label1, Me.dataGrid1})
Me.Name = "Form1"
Me.Text = "鼠标双击事件的例子"
CType(Me.dataGrid1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False) End Sub
<STAThread()> _
Public Shared Sub Main() Application.Run(New Form1()) End Sub
Private Sub TextBoxDoubleClickHandler(ByVal sender As Object, ByVal e As EventArgs) MessageBox.Show("TrueDoubleClick") End Sub
Private Sub TextBoxMouseDownHandler(ByVal sender As Object, ByVal e As MouseEventArgs) If (DateTime.Now < gridMouseDownTime.AddMilliseconds(SystemInformation.DoubleClickTime)) Then
MessageBox.Show("GridDoubleClick:" + CType(sender, TextBox).Text)
End If
Label1.Text = "TextBoxMouseDownHandler " End Sub
Private Sub dataGrid1_MouseDown(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) Handles dataGrid1.MouseDown gridMouseDownTime = DateTime.Now
Label1.Text = "dataGrid1_MouseDown " End Sub Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Label1.Click
Label1.Text = ""
End Sub Private Sub Form1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Click
Label1.Text = ""
End Sub
End Class
End Namespace