2016-09-26 22 views
0

我正在C#中制作一个非常小的RPG游戏来练习一些技巧(并获得乐趣!)。我已经非常熟悉图像,按钮等。 我的问题是,当我尝试将我的标签字符串转换为整数时将引发错误,并将其与我的attackingPhase()方法进行比较。C#标签字符串到int转换错误

这是我的代码和错误的截图。

我相信我的代码是正确的,但我无法弄清楚为什么错误被抛出。

谢谢你的帮助。

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace RPG 
{ 
public partial class Form2 : Form 
{ 
    private Form1 mainForm = null; 

    public Form2(Form callingForm) 
    { 
     mainForm = callingForm as Form1; 
     InitializeComponent(); 

     pictureBox1.Image = mainForm.MyPictureBoxEnemy.Image; 
     pictureBox2.Image = mainForm.MyPictureBoxHero.Image; 
     lbl_Health_Value_Enemy.Text = "100"; 
     lbl_Health_Value_Hero.Text = "100"; 

    } 

    public void attackingPhase() 
    { 
     Random rnd = new Random(); 

     int enemy_damage = rnd.Next(1, 25); 
     int hero_damage = rnd.Next(2, 15); 

     var enemyHealth = Convert.ToInt32(lbl_Health_Value_Enemy); 
     var heroHealth = Convert.ToInt32(lbl_Health_Value_Hero); 

     if((enemyHealth & heroHealth) > 0) 
     { 
      enemyHealth = enemyHealth - enemy_damage; 
      heroHealth = heroHealth - hero_damage; 
     } else 
     { 
      MessageBox.Show("DEAD"); 
     } 

     lbl_Health_Value_Enemy.Text = enemyHealth.ToString(); 
     lbl_Health_Value_Hero.Text = heroHealth.ToString(); 
    } 

    private void btnAttack_Click(object sender, EventArgs e) 
    { 
     attackingPhase(); 
    } 
} 
} 

Error Message

+1

错误是告诉你到底出了什么问题'lbl_Health_Value_Enemy'改为'lbl_Health_Value_Enemy.Text' – MethodMan

+1

同意methodman,我也推荐使用Int32.TryParse(string,out yourint)来处理 – Danimal

+0

错误并不是说问题是w ith''.Text'我尝试过去.toString,但是这个错误对我来说并不明显。不知道为什么这会在求救时被低估。我问了一个有效的问题 – Ashton

回答

4

你需要一个标签的Text属性转换,

var enemyHealth = Convert.ToInt32(lbl_Health_value_Enemy.Text); 
var heroHealth = Convert.ToInt32(lbl_Health_Value_Hero.Text); 
+0

GAH!当然!我用'.toString()'试过了,它也抛出了错误,但是当然它需要是.Text,因为标签。非常感谢你! :) – Ashton

+0

我会的!我因为某种原因被低估了,但对我来说这是一个有效的问题,我提供了所有信息:/当这样做的时限到期时,我将标记为答案。谢谢! – Ashton

+0

@Ashton Upvoted它,可能是因为你附加了屏幕截图而不是代码 – Sajeetharan