投稿者 魔界の仮面弁士  (社会人) 投稿日時 2018/5/25 11:27:43
> 今はa>b>cの関係だけに注目し作っています。

c が最小値となるべきなのですよね。

仮に、kkkkk さん= uuu さんだとしたら、この条件は
 a > b > c > 0
が正しいのでは無いでしょうか。


また、「数値しか入力させない」という前提で開発するのであれば、
そもそも TextBox1.Text を使うべきではなく、
NumericUpDown1.Value を使った方が楽でしょう。

NumericUpDown なら、必ず数値が入力されることになるので、
非数値が入力されることを考慮せず、a / b / c の大小判定のみに専念できますし、
NumericUpDown の DecimalPlaces と Minimum プロパティを適切にセットしておけば、
そもそも 0 以下の値が入力されることさえ防げます。


もしも TextBox で続けるのであれば、
>> ・「空欄時」「非数値の時」「マイナス値の時」「0 の時」とで、対処を変える必要があるのか否か
という入力が発生することは防げないので、そのときの対処は決めておかねばならず、
> いまのところは練習のためなしです。
と逃げるわけには行かなくなります。

とはいえ、もしも上記の 4 種を区別しないのであれば、
とりあえず簡単なのは、こんな実装ですかね。

Dim a, b, c As Decimal
Decimal.TryParse(TextBox1.Text, a)
Decimal.TryParse(TextBox2.Text, b)
Decimal.TryParse(TextBox3.Text, c)

If a > b AndAlso b > c AndAlso c > 0D Then
 TextBox1.ResetBackColor()
 TextBox2.ResetBackColor()
 TextBox3.ResetBackColor()
 
 '正しい値が得られたので、a,b,cを使った処理をここに記述 
 
Else
 '正しい入力ではない 
 TextBox1.BackColor = Color.Red
 TextBox2.BackColor = Color.Red
 TextBox3.BackColor = Color.Red
 MsgBox("a>b>c>0な入力になっていません")
 Return
End If