📄 frmclientinfo.vb
字号:
MessageBox.Show("修改的数据出错")
End Try
End Sub
Private Sub frmClientInfo_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler MyCombo.TextChanged, AddressOf Ctrls_TextChanged
Dim ts As New DataGridTableStyle
Dim aColumnTextColumn As DataGridTextBoxColumn
Dim numCols As Integer = Me.DataSet11.Tables("客户清单").Columns.Count
Dim i As Integer
For i = 0 To numCols - 1
aColumnTextColumn = New DataGridTextBoxColumn
aColumnTextColumn.MappingName = Me.DataSet11.Tables("客户清单").Columns(i).ColumnName
aColumnTextColumn.HeaderText = Me.DataSet11.Tables("客户清单").Columns(i).ColumnName
aColumnTextColumn.NullText = ""
aColumnTextColumn.Format = "F"
AddHandler aColumnTextColumn.TextBox.MouseDown, New MouseEventHandler(AddressOf DGDoubleClick)
AddHandler aColumnTextColumn.TextBox.DoubleClick, New EventHandler(AddressOf dgdClientResult_DoubleClick)
ts.GridColumnStyles.Add(aColumnTextColumn)
Next
ts.AlternatingBackColor = Color.LightGray
ts.AllowSorting = False
ts.MappingName = Me.DataSet11.Tables("客户清单").TableName
Me.dgdClientResult.TableStyles.Add(ts)
'Fill ComboBox list.
MyCombo.DropDownStyle = ComboBoxStyle.DropDownList
MyCombo.Name = "MyCombo"
MyCombo.Visible = False
MyCombo.Items.Clear()
Dim db As DataBase = New DataBase
Dim dv As DataView = db.RunSelectSQL("select 业务员号,姓名 from 业务员清单")
For i = 0 To dv.Count - 1
MyCombo.Items.Add(dv.Table.Rows(i)("姓名"))
Next
db.Dispose()
Me.SqlConnection1.ConnectionString = DataBase.sConn
Me.SqlDataAdapter1.Fill(Me.DataSet11, "客户清单")
Me.dgdClientResult.DataSource = Me.DataSet11.Tables("客户清单").DefaultView
dgdClientResult.Controls.Add(MyCombo)
dgdClientResult.PreferredRowHeight = MyCombo.Height
End Sub
Private Sub dgdClientResult_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgdClientResult.DoubleClick
If bClose Then
Me.Close()
End If
End Sub
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Public Function SetInfo() As String
Dim sReturn As String
Dim iRow As Integer = Me.dgdClientResult.CurrentRowIndex
Dim sId, sName, sUnit As String
sId = Me.DataSet11.Tables("客户清单").Rows(iRow)("客户编号")
sName = Me.DataSet11.Tables("客户清单").Rows(iRow)("名称")
sReturn = sId.Trim + "|" + sName.Trim
Return sReturn
End Function
Private Sub Ctrls_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs)
'MessageBox.Show("Ctrls_TextChanged")
If dgdClientResult.CurrentCell.ColumnNumber = 3 Then
MyCombo.Visible = False
If dgdClientResult.Item(dgdClientResult.CurrentCell) & "" = "" Then
SendKeys.Send("*")
End If
dgdClientResult.Item(dgdClientResult.CurrentCell) = Me.MyCombo.Text
End If
End Sub
Private Sub dgdClientResult_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgdClientResult.Click
MyCombo.Visible = False
MyCombo.Width = 0
End Sub
Private Sub dgdClientResult_Scroll(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgdClientResult.Scroll
MyCombo.Visible = False
MyCombo.Width = 0
End Sub
Private Sub dgdClientResult_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgdClientResult.CurrentCellChanged
If dgdClientResult.CurrentCell.ColumnNumber = 3 Then
MyCombo.Visible = False
MyCombo.Width = 0
MyCombo.Left = dgdClientResult.GetCurrentCellBounds.Left
MyCombo.Top = dgdClientResult.GetCurrentCellBounds.Top
MyCombo.Text = dgdClientResult.Item(dgdClientResult.CurrentCell) & ""
MyCombo.Visible = True
Else
MyCombo.Visible = False
MyCombo.Width = 0
End If
End Sub
Private Sub dgdClientResult_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles dgdClientResult.Paint
If dgdClientResult.CurrentCell.ColumnNumber = 3 Then
MyCombo.Width = dgdClientResult.GetCurrentCellBounds.Width
End If
End Sub
Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick
If e.Button Is Me.tbbSave Then
Dim row, col As Integer
row = Me.dgdClientResult.CurrentCell.RowNumber
col = Me.dgdClientResult.CurrentCell.ColumnNumber
If row = 0 Then
row = row + 1
Me.dgdClientResult.CurrentCell = New DataGridCell(row, col)
Else
dgdClientResult.CurrentCell = Nothing 'New DataGridCell(row, col)
End If
'Me.btnDelete.Focus()
Try
'判断DataSet11的数据是否有变化
'即DataGrid控件上是否有数据更改或新增数据
If Me.DataSet11.HasChanges Then
'通过SqlDataAdapter1更新数据库数据
Me.SqlDataAdapter1.Update(Me.DataSet11)
Me.DataSet11.Tables("客户清单").DefaultView.RowFilter = ""
MessageBox.Show("数据修改成功!")
Else
MessageBox.Show("无修改的数据!")
End If
Catch ex As Exception
MessageBox.Show("修改的数据出错")
End Try
ElseIf e.Button Is Me.tbbDel Then
Try
'获得DataGrid当前被选中的行号
Dim iRow = Me.dgdClientResult.CurrentRowIndex
'弹出对话框让用户确认要删除记录
'如果用户确认要删除记录
If MessageBox.Show("你确认要删除此条记录吗?", "Confirm", MessageBoxButtons.YesNo) = DialogResult.Yes Then
Me.DataSet11.Tables("客户清单").Rows(iRow).Delete()
Else
Exit Sub
End If
Try
If Me.DataSet11.HasChanges Then
'用SqlDataAdapter1更新数据库
Me.SqlDataAdapter1.Update(Me.DataSet11)
Me.DataSet11.Tables("客户清单").DefaultView.RowFilter = ""
MessageBox.Show("数据修改成功!")
Else
MessageBox.Show("无修改的数据!")
End If
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
Catch ex As Exception
MessageBox.Show("删除数据出错")
End Try
End If
End Sub
Private Sub DGDoubleClick(ByVal sender As Object, ByVal e As MouseEventArgs)
If (DateTime.Now < gridMouseDownTime.AddMilliseconds(SystemInformation.DoubleClickTime)) Then
dgdClientResult_DoubleClick(Nothing, Nothing)
End If
End Sub
Private Sub dgdClientResult_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles dgdClientResult.MouseDown
gridMouseDownTime = DateTime.Now
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -