Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
if文 比較対象が3つ
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30328#CommentId83253
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
uuu
 (社会人)
投稿日時
2018/5/23 22:12:30
途中でわからなくなったので、教えてください
a,b,cのテキストボックスが3つあります。
入力する値の大きさは下記が条件です
a>b>c
教えていただいた
If a > b AndAlso b > c Then
は a>cも含まれているでしょうか?
またテキストボックスに入力時に3つの関係が不適切ならメッセージを出すようにしたいです。
例えばb>aなら下記みたいなイメージです
If Val(TextBox2.Text) > Val(TextBox1.Text) Then
MsgBox("bはaより小さいです")
これをc>b>aで、まとめて比較し、できるようにしたいです
ただこれだけだと、TextBox2.Text入力後、違うテキストボックスに入力しようとするとメッセージが出てしまいます。
対策として下記で対応しているんですけど、問題はありませんか?
If TextBox2.TextLength <> 0 AndAlso TextBox1.TextLength <> 0 Then
現状はこのようになっています。
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For Each q In Me.Controls.OfType(Of TextBox)()
AddHandler q.Leave, AddressOf TextBoxes_Leave
Next
End Sub
Private Sub TextBoxes_Leave(sender As TextBox, e As EventArgs)
Dim d As Double
If Double.TryParse(sender.Text, d) AndAlso d > 0 Then
sender.ResetBackColor()
If TextBox2.TextLength <> 0 AndAlso TextBox1.TextLength <> 0 Then
If Val(TextBox2.Text) > Val(TextBox1.Text) Then
MsgBox("bはaより小さいです")
sender.BackColor = Color.Red
sender.Focus()
End If
ElseIf TextBox3.TextLength <> 0 AndAlso TextBox2.TextLength <> 0 Then
If Val(TextBox3.Text) > Val(TextBox2.Text) Then
MsgBox("cはbより小さいです")
sender.BackColor = Color.Red
sender.Focus()
ElseIf TextBox3.TextLength <> 0 AndAlso TextBox1.TextLength <> 0 Then
If Val(TextBox3.Text) > Val(TextBox1.Text) Then
MsgBox("cはaより小さいです")
sender.BackColor = Color.Red
sender.Focus()
End If
End If
End If
End If
End Sub
コードがものすごく長いので短くもしたいです。