2017-12-06 4 views
0

私はビジュアルベーシックの初心者です。次のコードを持つ電卓を開発しています。VB Radiobutton.checkedステートは、算術演算を実行すると-1を返します。

labeltotal.text = (radiobutton1.Checked) * 1000

上記のコードから私の期待はそれ以外の場合は0

でなければなりませんradiobutton1がチェックされている場合は、合計の値が1000であるべき、ということである。しかし私は何を取得していますがあれば、ですradiobutton1がチェックされ、合計値が-1000に変更されます。それ以外の場合は0になります。

ただし、チェックボックスを使用すると正しい値を取得します。たとえば、 labeltotal.text = (checkbox1.Checkstate) * 1000 正しい値は、チェックステートに応じて期待通りに表示されます。

上記のコードでラジオボタンをチェックボックスと同じように動作させるにはどうすればよいですか?

+0

VB? VB.Net? VBA?どれ?最初に学ぶべきことは、似ているが同じではないということです。 :-) – ashleedawg

+0

それは視覚的な基本です。 –

+0

OK、[tag:VBA]タグを削除してください。また、[ツアー]や[質問]、[mcve]もチェックしてください。ああ、そしてStack Overflowへようこそ! :-) – ashleedawg

答えて

2

まず、Option StrictOnに切り替える必要があります。 BooleanIntegerに変換され

場合は、FalseためTrueため-10を取得します。詳細について
は、以下を参照してください。

Trueため 1を返す関数 Convert.ToInt32もあります

labeltotal.Text = (CInt(radiobutton1.Checked) * 1000 * -1).ToString 

labeltotal.Text = (CInt(radioButton1.Checked)^2 * 1000).ToString 

Convert Boolean to Integer in VB.NET

だから、次のいずれかは、あなたが望む結果を返す必要があります

labeltotal.Text = (Convert.ToInt32(radioButton1.Checked) * 1000).ToString 

しかし、この特定のケースでは、計算は本当に意味をなさない
次は、より明確であり、この場合のためのより良いフィット:

labeltotal.Text = If(radioButton1.Checked, "1000", "0") 
関連する問題