0

私の脳はここで絶対に揚げられています。(間違いなく)明らかな質問で申し訳ありませんが、私は木のために木を見ることができません!

「ポイントプール」として機能する変数があります。数値アップダウンコントロールは、このポイントプールに影響します。numupdownを増やすと、ポイントプールが減り、その逆も同様です。私は論理に頭を悩ませることができません:(

これがその価値のある私の「コード」です...

private void numJobSkill1_ValueChanged(object sender, EventArgs e)
    {

        int difference = (int)(numJobSkill1.Value - numJobSkill1.Minimum);

        /* if (numJobSkill1.Value > numJobSkill1.Minimum)
        {

            POINTPOOL = POINTPOOL - 1;

        } 
        else
        {
            POINTPOOL = POINTPOOL + 1;
        } */

        lblPOINTPOOL.Text = PLAYERPOINTS.ToString();

    }

前もって感謝します。

4

3 に答える 3

1

値が増加したか減少したかを判断するには、最後の値を覚えておく必要があります。

// initialize this with the initial value of the UpDownControl
private int _previousValue;

private void numJobSkill1_ValueChanged(object sender, EventArgs e) 
{ 
    int currentValue = numJobSkill1.Value;
    _pointPool -= currentValue - _previousValue;
    _previousValue = currentValue;
} 
于 2012-08-16T08:06:11.907 に答える
0

これを処理する最も簡単な方法は、戻り値が TotalPointsAvailable - TotalPointAllocated である変数の代わりに PointPool を関数にすることだと思います。

private void numJobSkill1_ValueChanged(object sender, EventArgs e)
{
    PLAYERPOINTS = PointPool();
    lblPOINTPOOL.Text = PLAYERPOINTS.ToString();

}

private Int32 TotalPointsAvailable;

private Int32 TotalPointsAllocated()
{
   //Value is a decimal
   return (Int32)numJobSkill1.Value;
}

private Int32 PointPool()
{
    return TotalPointsAvailable-TotalPointsAllocated();
} 
于 2012-08-16T08:14:49.257 に答える
-1

これを試して :

private void numJobSkill1_ValueChanged(object sender, EventArgs e)
    {

        int difference = (int)(numJobSkill1.Value - numJobSkill1.Minimum);

        if (difference > 0)
        {
            difference--;
        }
        else
        {
            difference++;
        }

        lblPOINTPOOL.Text = difference.ToString();

    }
于 2012-08-16T08:06:43.257 に答える