NumericUpDown內框觸發

把問題分開問 比較好

抱歉

之前問的內框觸發是會

但這個程式碼放入會有問題

要如何把以下程式碼 各放入

NumericUpDown9.Value

NumericUpDown10.Value

都可以呈現內框觸發效果??

一樣內容同時放入 導致出錯

該改哪裡才好??

Dim n1, n2 As Short

Dim dn As Short

Dim totaln As Integer

n2 = NumericUpDown10.Value

n1 = NumericUpDown9.Value

dn = (n2 - n1)

For i = 1 To dn

totaln += ((n1 + 1) ^ 3.3 + (n1 + 1 - 150) ^ 4.9)

n1 += 1

Next

TextBox2.Text = totaln

第二個內框如果改成

dn = (n1 - n2)

For i = 1 To dn

totaln2 += ((n2 + 1) ^ 3.3 + (n2 + 1 - 150) ^ 4.9)

n2 += 1

Next

是可以 不過就變成

NumericUpDown9.Value = 165

NumericUpDown10.Value = 162

才會運算 這樣就顛倒了 不對了

已更新項目:

是的 NumericUpDown1_ValueChanged事件

顯示這個錯誤

http://i.imgur.com/QUDstt4.png

2 個已更新項目:

請問有解決的方法嗎

3 個已更新項目:

且看一下 這段程式碼是你解答的

所以想問問是否有可改的方法

4 個已更新項目:
5 個已更新項目:

放入一樣內容 就是那個錯誤

不知是否程式碼待修改

1 個解答

評分
  • 6 年前
    最佳解答

    所謂 內框觸發效果 是指 NumericUpDown1_ValueChanged事件嗎

    一樣內容同時放入 導致出錯 是錯在哪裡呢

    不是很了解題目

    2014-11-17 16:27:07 補充:

    無法進入你提供的資料

    2014-11-17 18:43:26 補充:

    你可能誤會我的意思了?

    我無法進入你提供的網址http://i.imgur.com/QUDstt4.png

    所以我不知道問題在哪裡

    2014-11-17 18:57:35 補充:

    在NumericUpDown9_ValueChanged事件和NumericUpDown10_ValueChanged事件中,都放入以下你寫的程式,應該是沒問題?

    Dim n1, n2 As Short

    Dim dn As Short

    Dim totaln As Integer

    n2 = NumericUpDown10.Value

    n1 = NumericUpDown9.Value

    .......

    TextBox2.Text = totaln

    2014-11-17 19:12:00 補充:

    看到資料了。

    但無法只從這個錯誤內容推測程式碼的錯誤。

    可否把你的程式碼(尤其是這兩個事件NumericUpDown9_ValueChanged事件和NumericUpDown10_ValueChanged事件)貼出來。

    這樣比較容易找出錯誤。

    2014-11-17 22:34:01 補充:

    錯誤在此處totaln += ((n1 + 1) ^ 3.3 + (n1 + 1 - 150) ^ 4.9)

    當等級小於148,(n1+1-150)為負數,而電腦無法計算負數的^4.9

    改成

    Dim n1, n2 As Short

    Dim dn As Short

    Dim totaln As Integer

    n2 = NumericUpDown10.Value

    n1 = NumericUpDown9.Value

    dn = (n2 - n1)

    For i = 1 To dn

    If (n1 + 1 - 150) >= 0 Then

    totaln += ((n1 + 1) ^ 3.3 + (n1 + 1 - 150) ^ 4.9)

    Else

    totaln += ((n1 + 1) ^ 3.3 - ((150 - n1 - 1) ^ 4.9))

    End If

    n1 += 1

    Next

    TextBox2.Text = totaln

    另外,當目前等級比較大,目標等級比較小時,這個程式碼不會產生負數。

    我在研究看看。

    2014-11-17 23:35:43 補充:

    Dim n1, n2 As Integer

    Dim dn As Integer

    Dim totaln As Long

    n2 = NumericUpDown10.Value

    n1 = NumericUpDown9.Value

    dn = Math.Abs(n2 - n1)

    For i = 1 To dn

    If (n1 + 1 - 150) >= 0 Then

    2014-11-17 23:36:15 補充:

    totaln += ((n1 + 1) ^ 3.3 + (n1 + 1 - 150) ^ 4.9)

    Else

    totaln += ((n1 + 1) ^ 3.3 - ((150 - n1 - 1) ^ 4.9))

    End If

    n1 += 1

    Next

    If n2 < n1 Then totaln = -totaln

    TextBox2.Text = totaln

    2014-11-17 23:38:40 補充:

    ((n1 + 1) ^ 3.3 - ((150 - n1 - 1) ^ 4.9))

    這個工是滿奇怪的,如果等級太低,如70提升到72,反而是負值。

    你有設最低等級嗎?

還有問題?馬上發問,尋求解答。