-1
このVB.netプログラムでは、コンボボックスのtextchangedイベントに基づいてテキストボックスのキー押しの条件を変更する必要があります。VB.Net - ComboboxのTextchangedイベントのKeypressイベント
たとえば、コンボボックスの選択項目に "0-0-50"が含まれている場合、テキストボックスは10進数を受け入れる必要があります。
これは私のコードであり、それは働いていないと私は間違っているのか分からない:
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
私はフォームに配置した場合のハンドラが動作load、しかし私はコンボボックスのtextchangedイベントに "0-0-50"バリデーションのために挿入する必要があります。 ありがとう
私は編集をロールバックしました。あなたの質問を編集してタイトルに(SOLVED)とあなたの質問に答えを加えるのは、ここでは適切ではありません。あなたが見つけた解決策を共有したいのであれば、回答を投稿するために提供された下のスペースを使って[self-answer](http://stackoverflow.com/help/self-answer)を書くことで正しく解決してください。 –
@KenWhite私は実際に答えを追加しましたが、なぜ保存されていないのかわかりません。 –