private void P1STRtextbox_TextChanged(object sender, EventArgs e)
{
if (Convert.ToInt32(P1STRtextbox.Text) > Convert.ToInt32(P1RemainingStatPointsLabel.Text))
{
MessageBox.Show("You have enter a number larger than your remaining stat points!");
}
else
{
P1RemainingStatPointsLabel.Text = (PlayerOne[P1ClassNumber].TotalStatPoints - Convert.ToInt32(P1STRtextbox.Text)).ToString();
}
}
private void P1DEXtextbox_TextChanged(object sender, EventArgs e)
{
if (Convert.ToInt32(P1DEXtextbox.Text) > Convert.ToInt32(P1RemainingStatPointsLabel.Text))
{
MessageBox.Show("You have enter a number larger than your remaining stat points!");
}
else
{
P1RemainingStatPointsLabel.Text = (PlayerOne[P1ClassNumber].TotalStatPoints - Convert.ToInt32(P1DEXtextbox.Text)).ToString();
}
}
基本上,当框中的文本发生更改时,会触发事件。当我首先在强度文本框中输入一个数字时,它会正确地进行推理,但是当我进入Dexterity框并尝试编辑该值时,它不能正确地进行推导。如图所示(剩余的统计点),3000-(250 + 750)!= 2250;有人可以给我一些合乎逻辑的建议吗?感谢您提前花时间和精力!
答案 0 :(得分:2)
如何更改P1DEXtextbox_TextChanged else语句以使用下面的内容?
P1RemainingStatPointsLabel.Text = (PlayerOne[P1ClassNumber].TotalStatPoints - (Convert.ToInt32(P1STRtextbox.Text) + Convert.ToInt32(P1DEXtextbox.Text))).ToString();
答案 1 :(得分:2)
您永远不会添加力量和灵巧度值。更改剩余的统计值时,您需要考虑两个字段:
int strength = Convert.ToInt32(P1STRtextbox.Text);
int dexterity = Convert.ToInt32(P1DEXtextbox.Text);
P1RemainingStatPointsLabel.Text = (PlayerOne[P1ClassNumber].TotalStatPoints - (strength + dexterity)).ToString();
您还必须确保在将文本转换为整数时处理可能的错误。