📄 collisionform.vb
字号:
'---------------------------------------------------------------------
' This file is part of the Microsoft .NET Framework SDK Code Samples.
'
' Copyright (C) Microsoft Corporation. All rights reserved.
'
' This source code is intended only as a supplement to Microsoft
' Development Tools and/or on-line documentation. See these other
' materials for detailed information regarding Microsoft code samples.
'
' THIS CODE AND INFORMATION ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY
' KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
' IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
' PARTICULAR PURPOSE.
'---------------------------------------------------------------------
Public Class CollisionForm
Inherits System.Windows.Forms.Form
Public Sub New(ByVal dl As DataLayer, ByVal e1 As Common.TaskEventArgs, ByVal e2 As Common.TaskEventArgs)
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
m_DataLayer = dl
m_OriginalRow = e1.Task
m_CollisionRow = e2.Task
m_ImageList = New ImageList()
m_TextList = New ArrayList()
End Sub
Private m_DataLayer As DataLayer
Private m_CollisionRow As Business.Task
Private m_OriginalRow As Business.Task
Private m_ImageList As ImageList
Private m_TextList As ArrayList
Private m_ProgressList As ArrayList
Private Const c_PriorityImagesPath As String = "Images\"
Private m_ResourceManager As New Resources.ResourceManager("TeamVision.Localize", System.Reflection.Assembly.GetExecutingAssembly())
Private Sub CollisionForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
'bind the dropdowns to their respective datatables
cbStatus.DataSource = m_DataLayer.States
cbStatus.DisplayMember = Database.Columns.State.Text
cbStatus.ValueMember = Database.Columns.State.StateID
cbPriority.DataSource = m_DataLayer.Priorities
cbPriority.DisplayMember = Database.Columns.Priority.Text
cbPriority.ValueMember = Database.Columns.Priority.PriorityID
cbAssignedTo.DataSource = m_DataLayer.Users
cbAssignedTo.DisplayMember = Database.Columns.User.Name
cbAssignedTo.ValueMember = Database.Columns.User.UserID
m_ProgressList = TaskProgress.GetValues()
cbProgress.DataSource = m_ProgressList
cbProgress.DisplayMember = "Text"
cbProgress.ValueMember = "Value"
' grab images
Try
m_ImageList.Images.Add(My.Resources.Major)
m_ImageList.Images.Add(My.Resources.Medium)
m_ImageList.Images.Add(My.Resources.Minor)
m_TextList.Add("Major")
m_TextList.Add("Medium")
m_TextList.Add("Minor")
Catch
MessageBox.Show(m_ResourceManager.GetString("gif_was_not_found"), m_ResourceManager.GetString("File_Not_Found"))
LogError.Write(m_ResourceManager.GetString("gif_was_not_found"))
Me.Close()
Return
End Try
BindTask()
End Sub
Private Sub BindTask()
txtSummary.Text = m_CollisionRow.Summary
txtDescription.Text = m_CollisionRow.Description
cbStatus.SelectedValue = m_CollisionRow.StateID
cbProgress.SelectedValue = m_CollisionRow.Progress
cbAssignedTo.SelectedValue = m_CollisionRow.AssignedID
cbPriority.SelectedValue = m_CollisionRow.PriorityID
dtDueDate.Value = m_CollisionRow.DateDue
txtUpdatedSummary.Text = m_OriginalRow.Summary
txtUpdatedDescription.Text = m_OriginalRow.Description
txtUpdatedStatus.Text = m_OriginalRow.State.Text
txtUpdatedProgress.Text = m_OriginalRow.Progress & "%"
txtUpdatedAssignedTo.Text = m_DataLayer.GetAssignment(m_OriginalRow.AssignedID).User.Name
txtUpdatedPriority.Text = m_OriginalRow.Priority.Text
txtUpdatedDueDate.Text = String.Format("{0:d}", m_OriginalRow.DateDue)
lblUpdatedModifiedBy.Text = m_OriginalRow.User.Name
lblUpdatedDate.Text = String.Format("{0:d}", m_OriginalRow.DateModified)
End Sub
Private Function SaveTask() As Boolean
If txtSummary.Text.Trim().Length > 0 Then
' Copy the information from the form fields back to the DataRow
With m_CollisionRow
.Summary = txtSummary.Text.Trim()
.Description = txtDescription.Text.Trim()
.PriorityID = cbPriority.SelectedValue
.StateID = cbStatus.SelectedValue
.AssignedID = cbAssignedTo.SelectedValue
.Progress = cbProgress.SelectedValue
.DateDue = dtDueDate.Value
.DateModified = DateTime.Now
End With
Dim facade As New Database.TaskFacade
facade.UpdateTask(m_CollisionRow)
Else
MessageBox.Show("Please enter a Summary for this change.")
txtSummary.Focus()
Return False
End If
Return True
End Function
Private Sub _cbPriority_DrawItem(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles cbPriority.DrawItem
e.DrawBackground()
e.DrawFocusRectangle()
e.Graphics.DrawImage(m_ImageList.Images(e.Index), New Point(e.Bounds.X, e.Bounds.Y))
e.Graphics.DrawString(CType(m_TextList(e.Index), String), e.Font, New SolidBrush(Color.Black), _
m_ImageList.Images(e.Index).Width + 4, e.Bounds.Top + 1)
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
If SaveTask() Then
Me.Close()
End If
End Sub
Private Sub btnIgnore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIgnore.Click
Me.Close()
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -