【发布时间】:2025-12-06 11:55:02
【问题描述】:
我有一个带有CheckBox 和RadioButton 控件的表单。当人们点击按钮/框时,它会将结果保存到我的数据库中。稍后,我可能希望其他人检索表单并进行更改或继续使用它。
当我将信息从数据库中拉回一个新的“搜索”表单(看起来与用于提交数据的表单完全一样)时,我希望单选按钮反映它们在保存表单时所处的状态.因此,如果一个框在保存时为 TRUE(选中),我希望它在新表单上显示 TRUE(选中)。
但是,当我使用时
radiobutton.checked = True
它确实将我的按钮标记为已选中...。它的行为也像按钮被再次单击一样。所以我的数据库中有重复的结果。每次打开表单时它都会继续这样做。
所以,我想要一种方法将框标记为已选中(保存时的状态),但不会再次导致事件。
这是一个例子:
str = "SELECT * from OpenEvents WHERE EventID = " & eventId & ""
Dim cmd6 As OleDbCommand = New OleDbCommand(str, myConnection)
dr = cmd6.ExecuteReader()
While dr.Read()
contactType = dr("ContactType").ToString
abend = dr("Abend").ToString
paged = dr("Paged").ToString
shortSummary = dr("ShortSummary").ToString
eventNotes = dr("EventNotes").ToString
impacting = dr("Impacting").ToString
L1Engaged = dr("L1Engaged").ToString
L2Engaged = dr("L2Engaged").ToString
managerEngaged = dr("ManagerEngaged")
IncTicket = dr("IncTicket").ToString
End While
myConnection.Close()
If contactType = "Call" Then
CallRadioButton.Checked = True
ElseIf contactType = "IM" Then
IMRadioButton.Checked = True
ElseIf contactType = "Other" Then
OtherRadioButton.Checked = True
ElseIf contactType = "Alert" Then
AlertRadioButton.Checked = True
Else
End If
If abend = "True" Then AbendCheckBox.Checked = True
If paged = "True" Then PagedYes.Checked = True
ShortSummaryTextBox.Text = shortSummary
DetailsTextBox.Text = eventNotes
If impacting = "True" Then ImpactingYesRadioButton.Checked = True
If L1Engaged = "True" Then L1YesRadioButton.Checked = True
If L2Engaged = "True" Then L2YesRadioButton.Checked = True
If managerEngaged = "True" Then ManagerYesRadioButton.Checked = True
IncTicketTextBox.Text = IncTicket
【问题讨论】:
-
我建议您创建一个布尔值以在加载事件中使用。将其启动为 true,并在完成加载表单后将其结果更改为 false。并且在每个单选/检查操作中,您都会验证布尔值的值,如果表单正在加载,则退出子。
标签: vb.net visual-studio-2010 radio-button