У меня есть эта программа VB.net, где мне нужно изменить условия нажатия клавиш текстовых полей на основе события изменения текста combobox.VB.Net - Событие Keypress в событии TextBanged Combobox
Например, если выбранный элемент в выпадающем списке содержит «0-0-50», тогда текстовые поля должны принимать десятичные числа, иначе - только целые числа.
это мой код и он не работает, и я не знаю, что это неправильно:
Private Sub cboFertilizer_TextChanged(sender As Object, e As EventArgs) Handles cboFertilizer.TextChanged
Try
g_SqlSTR = <string>
SELECT FAID, [FertilizerType], [Issued], [ReturnedTransfered], [Used], [UsedRemarks]
,[ReturnTransfer], [ReturnTransferRemarks], [Sold], [SoldRemarks], [UsedInOtherCrops]
,[UsedInOtherCropsRemarks], [Others], [OthersRemarks], [ChildLabor]
FROM Buying.tFertilizerAuditDetails
WHERE FertilizerType = '<%= cboFertilizer.Text %>' AND FAID = '<%= _FAID %>'
</string>
ExecuteSQLQuery(g_SqlSTR)
If g_SqlDT.Rows.Count <> 0 Then
txtIssued.Text = g_SqlDT.Rows(0)("Issued")
txtReturned.Text = g_SqlDT.Rows(0)("ReturnedTransfered")
txtUsed.Text = g_SqlDT.Rows(0)("Used")
txtRemarksUsed.Text = g_SqlDT.Rows(0)("UsedRemarks")
txtReturn.Text = g_SqlDT.Rows(0)("ReturnTransfer")
txtRemarksReturn.Text = g_SqlDT.Rows(0)("ReturnTransferRemarks")
txtSold.Text = g_SqlDT.Rows(0)("Sold")
txtRemarksSold.Text = g_SqlDT.Rows(0)("SoldRemarks")
txtUsedInCrops.Text = g_SqlDT.Rows(0)("UsedInOtherCrops")
txtRemarksUsedInCrops.Text = g_SqlDT.Rows(0)("UsedInOtherCropsRemarks")
txtOthers.Text = g_SqlDT.Rows(0)("Others")
txtRemarksOthers.Text = g_SqlDT.Rows(0)("OthersRemarks")
If g_SqlDT.Rows(0)("ChildLabor").ToString = "True" Then
rYes.Checked = True
ElseIf g_SqlDT.Rows(0)("ChildLabor").ToString = "False" Then
rNo.Checked = True
End If
Else
ClearTextBoxes()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
If cboFertilizer.Text.Contains("0-0-50") Then
AddHandlerDecimal()
Else
AddHandlerWholeNo()
End If
End Sub
И это обработчики:
Public Sub AddHandlerDecimal()
AddHandler txtIssued.KeyPress, AddressOf WholenumbersAndDecimalonlywithoutNegative
AddHandler txtReturned.KeyPress, AddressOf WholenumbersAndDecimalonlywithoutNegative
AddHandler txtUsed.KeyPress, AddressOf WholenumbersAndDecimalonlywithoutNegative
AddHandler txtReturn.KeyPress, AddressOf WholenumbersAndDecimalonlywithoutNegative
AddHandler txtSold.KeyPress, AddressOf WholenumbersAndDecimalonlywithoutNegative
AddHandler txtUsedInCrops.KeyPress, AddressOf WholenumbersAndDecimalonlywithoutNegative
AddHandler txtOthers.KeyPress, AddressOf WholenumbersAndDecimalonlywithoutNegative
End Sub
Public Sub AddHandlerWholeNo()
AddHandler txtIssued.KeyPress, AddressOf Wholenumbersonlywithoutnegative
AddHandler txtReturned.KeyPress, AddressOf Wholenumbersonlywithoutnegative
AddHandler txtUsed.KeyPress, AddressOf Wholenumbersonlywithoutnegative
AddHandler txtReturn.KeyPress, AddressOf Wholenumbersonlywithoutnegative
AddHandler txtSold.KeyPress, AddressOf Wholenumbersonlywithoutnegative
AddHandler txtUsedInCrops.KeyPress, AddressOf Wholenumbersonlywithoutnegative
AddHandler txtOthers.KeyPress, AddressOf Wholenumbersonlywithoutnegative
End Sub
Обработчики работать, если я устанавливаю его на форме загружайте, но мне нужно вставить его и в событие с измененным текстом combobox, а также для проверки «0-0-50». Thanks
Я откат вашего редактирования. Здесь не уместно отредактировать ваш вопрос, чтобы сказать (РЕШИТЬ) в названии и добавить решение к вашему вопросу. Если вы хотите поделиться найденным решением, сделайте это правильно, написав [self-answer] (http://stackoverflow.com/help/self-answer), используя пространство, указанное ниже для отправки ответов. –
@KenWhite Я действительно добавил ответ, но я не знаю, почему он не спасен. –