Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 请求用户输入字符';s统计数据_C#_Events_Textbox_Runtime Error_Return Value - Fatal编程技术网

C# 请求用户输入字符';s统计数据

C# 请求用户输入字符';s统计数据,c#,events,textbox,runtime-error,return-value,C#,Events,Textbox,Runtime Error,Return Value,if((parseissusccessfull=int.TryParse(P1STRtextbox.Text,out result))==true)//尝试解析STR文本框;如果它解析成功 { PlayerOne[P1ClassNumber].Strength=0;//这两条线最初重置了Strength的值 int-SumOfAllStatPoints=PlayerOne[P1ClassNumber].Strength+//如果没有这两行,用户将无法在此文本字段中输入其总点数 游戏玩家[P1Cl

if((parseissusccessfull=int.TryParse(P1STRtextbox.Text,out result))==true)//尝试解析STR文本框;如果它解析成功
{
PlayerOne[P1ClassNumber].Strength=0;//这两条线最初重置了Strength的值
int-SumOfAllStatPoints=PlayerOne[P1ClassNumber].Strength+//如果没有这两行,用户将无法在此文本字段中输入其总点数
游戏玩家[P1ClassNumber]。敏捷+游戏玩家[P1ClassNumber]。活力+//
玩家指南[P1ClassNumber]。红魔+玩家指南[P1ClassNumber]。蓝魔//
P1RemainingStatPointsLabel.Text=(播放者[P1ClassNumber].TotalStatPoints-SumOfAllStatPoints)。ToString();//每次更改文本时重新计算剩余的统计点
playerne[P1ClassNumber].Strength=int.Parse(P1STRtextbox.Text);//将解析后的值存储到playernes的Strength值中
if(PlayerOne[P1ClassNumber].Strength>int.Parse(P1RemainingStatPointsLabel.Text))//如果PlayerOne的强度输入大于剩余的统计点
{
MessageBox.Show(“您输入的数字大于您的剩余统计点!”;//提示用户输入有效数字
}
else if(玩家玩家[P1ClassNumber].Strength
功能的快速定义:玩家选择一个可玩的角色类别,输入他们的级别(全部在图片中的“类别选择”选项卡中完成)。完成后,他们输入他们的级别。该等级被取下并乘以10,给玩家一个他们可以分配给角色的统计点数总数。初始总StatPoints=剩余StatPoints。然后用户进入“输入统计信息”选项卡,在那里分配统计信息。每次用户更改文本框中的值时,都会更新其统计信息的值

我的问题:一切正常,但当我输入3000(这是我的总统计点)时,显示我剩余统计点的字段显示的是3000而不是0。我猜在我的代码中的某个地方,它搞乱了,并将剩余的stat points变量设置为3000,因为显示剩余点的标签是本地化的


问题:我的问题是什么?你有什么合理的建议吗?提前感谢您的时间和努力。

代码忽略了强度等于剩余统计点的条件
i、 e.使用代码忽略强度等于剩余统计点的条件
i、 e.使用代码忽略强度等于剩余统计点的条件
i、 e.使用代码忽略强度等于剩余统计点的条件
i、 使用谢谢。哇,当我把事情复杂化的时候,我会忘记看那些简单的事情,并且倾向于制造更多的错误。愚蠢的我,非常感谢你!我还建议将RemainingStatPoints设置为function/readonly属性,可以是保存其他统计信息的同一对象的一部分。这可以使代码更简单,并且可以避免每次解析标签文本。谢谢。哇,当我把事情复杂化的时候,我会忘记看那些简单的事情,并且倾向于制造更多的错误。愚蠢的我,非常感谢你!我还建议将RemainingStatPoints设置为function/readonly属性,可以是保存其他统计信息的同一对象的一部分。这可以使代码更简单,并且可以避免每次解析标签文本。谢谢。哇,当我把事情复杂化的时候,我会忘记看那些简单的事情,并且倾向于制造更多的错误。愚蠢的我,非常感谢你!我还建议将RemainingStatPoints设置为function/readonly属性,可以是保存其他统计信息的同一对象的一部分。这可以使代码更简单,并且可以避免每次解析标签文本。谢谢。哇,当我把事情复杂化的时候,我会忘记看那些简单的事情,并且倾向于制造更多的错误。愚蠢的我,非常感谢你!我还建议将RemainingStatPoints设置为function/readonly属性,可以是保存其他统计信息的同一对象的一部分。这可以使代码更简单,并且可以避免每次解析标签文本。
if ((ParseIsSuccessfull = int.TryParse(P1STRtextbox.Text, out result)) == true)//Try parsing the STR text box;If it parses successfully
{

    PlayerOne[P1ClassNumber].Strength = 0;//These couple lines reset the value of strength initially 
    int SumOfAllStatPoints = PlayerOne[P1ClassNumber].Strength + //Without these couple lines the user cannot enter their total number of points into this text field
            PlayerOne[P1ClassNumber].Dexterity + PlayerOne[P1ClassNumber].Vigor + // 
            PlayerOne[P1ClassNumber].RedMagic + PlayerOne[P1ClassNumber].BlueMagic;//
    P1RemainingStatPointsLabel.Text = (PlayerOne[P1ClassNumber].TotalStatPoints - SumOfAllStatPoints).ToString();//Recalculate the remaining stat points each time the text is changed       

    PlayerOne[P1ClassNumber].Strength = int.Parse(P1STRtextbox.Text);//Store the parsed value into PlayerOnes Strength Value
    if (PlayerOne[P1ClassNumber].Strength > int.Parse(P1RemainingStatPointsLabel.Text))//If PlayerOnes Strength Input is greater than the remaining stat points
    {
        MessageBox.Show("You have enter a number larger than your remaining stat points!");//Prompt the user to enter a valid number
    }
    else if (PlayerOne[P1ClassNumber].Strength < int.Parse(P1RemainingStatPointsLabel.Text))//If PlayerOnes Strength Input is less than the remaining stat points
    {

        PlayerOne[P1ClassNumber].Strength = int.Parse(P1STRtextbox.Text);//Store the STR input in an integer value
        SumOfAllStatPoints = PlayerOne[P1ClassNumber].Strength + //Total up All of player ones stats that the user has the option to input a number for
            PlayerOne[P1ClassNumber].Dexterity + PlayerOne[P1ClassNumber].Vigor + //In this case STR/DEX/VIG/RM/BM
            PlayerOne[P1ClassNumber].RedMagic + PlayerOne[P1ClassNumber].BlueMagic;

        PlayerOne[P1ClassNumber].RemainingStatPoints = (PlayerOne[P1ClassNumber].TotalStatPoints - SumOfAllStatPoints);

        P1RemainingStatPointsLabel.Text = PlayerOne[P1ClassNumber].RemainingStatPoints.ToString();//Display the updated stat points in the remaining stat points label
    }
}
else if ((ParseIsSuccessfull = int.TryParse(P1STRtextbox.Text, out result)) == true)//If the parse is unsuccessfull
{
    MessageBox.Show("Please enter numbers only!");//Display an error message
}