こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

このコードはどこが間違っていますか?(至急)

急ぎのため再度の質問失礼します。
(zのn乗)-(xのn乗+yのn乗)の計算をさせて、答えが0のときにメッセージを表示したいのですが、どのようなコードを書けばいいのでしょうか?

Option Explicit On

Public Class Form1

Dim x As Long

Dim y As Long

Dim z As Long

Dim n As Long

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Me.Close()

End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

End Sub

Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged

End Sub

Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged

End Sub

Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

x = TextBox1.Text

y = TextBox2.Text

z = TextBox3.Text

n = TextBox4.Text

TextBox5.Text = (z ^ n) - (x ^ n + y ^ n)

If (TextBox5 .Text= 0) Then

Label6.Visible = True

End If

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub


Private Sub Label6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label6.Click

End Sub
End Class

このコードだと答えが必ず-1になってしまうのですが、どこを直せばいいのでしょうか?
正しいコードを教えて下さい。
よろしくお願いします。

投稿日時 - 2013-09-18 20:59:08

QNo.8270023

すぐに回答ほしいです

質問者が選んだベストアンサー

x = TextBox1.Text

Longのような数値と、Stringの文字列とは、扱いがいろいろと違うので、
計算に使うのなら、文字列→数値への変換をちゃんとしておいた方がいいでしょう。

x = Long.Parse(TextBox1.Text)
とか。

投稿日時 - 2013-09-18 22:05:45

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

If (TextBox5 .Text= 0) Then


If (TextBox5 .Text== 0) Then

ですね。

=は代入で成功したら(必ず成功します)真を返します。真=-1なのでは?偽はおそらく0

投稿日時 - 2013-09-18 21:06:43

補足

デバッグのやり方が間違っていたみたいで、計算自体は多分正常に動きました。
それともう一つ訊きたいのですが、普段はLabel6を隠しておいて、答えが0になったときだけ、表示させたいのですが、どのようにコードを書けばいいですか?
またLabelのサイズを変えようとすると、元に戻ってしまうのですが、どうしてでしょうか?

投稿日時 - 2013-09-18 21:22:30

お礼

ご回答ありがとうございます。

投稿日時 - 2013-09-18 21:15:23