C#将“label.text”字符串转换为整数

时间:2014-01-30 15:30:47

标签: c# winforms picturebox

我正在尝试以一种形式创建一个图片框,当在特定的X / Y范围(矩形)内单击时,将打开第二个表单。我的问题是让lblX和lblY的字符串值在我的'If'语句中正确运行:

  private void picboxMain_MouseUp(object sender, MouseEventArgs e)
    {
        Convert.ToInt32(lblX.Text);
        Convert.ToInt32(lblY.Text);

        if ((lblX >= 155 && lblX <= 179) && (lblY >= 145 && lblY <= 160))
        {
            Form2 Form2 = new Form2();
            Form2.Show();
        }
    }

希望我很清楚我正在尝试做什么。该错误表明“运算符&gt; =不能与label和int一起使用”。任何人都可以看到我所缺少的并推荐一个解决方案吗?

谢谢,A。

5 个答案:

答案 0 :(得分:8)

Convert.ToInt32 返回整数值。你需要分配它:

var x = Convert.ToInt32(lblX.Text);
var y = Convert.ToInt32(lblY.Text);

if ((x >= 155 && x <= 179) && (y >= 145 && y <= 160))
{
    Form2 Form2 = new Form2();
    Form2.Show();
}

还考虑使用int.TryParse并在输入错误的情况下处理失败的转换:

int x;
int y;
if (!int.TryParse(lblX.Text, out x) || !int.TryParse(lblY.Text, out y))
{
    // Oh no, a problem! Do something, quick!
}
else
{
    if ((x >= 155 && x <= 179) && (y >= 145 && y <= 160))
    {
        Form2 Form2 = new Form2();
        Form2.Show();
    }
}

答案 1 :(得分:3)

Convert.ToInt32会返回int,因此您需要先将其分配给变量,然后检查变量

private void picboxMain_MouseUp(object sender, MouseEventArgs e)
{
    int x = Convert.ToInt32(lblX.Text);
    int y = Convert.ToInt32(lblY.Text);

    if ((x >= 155 && x <= 179) && (y >= 145 && y <= 160))
    {
        Form2 Form2 = new Form2();
        Form2.Show();
    }
}

答案 2 :(得分:3)

您正在将标签的文本转换为整数,但您没有将它们保存在任何位置,以后您要将标签与这些值进行比较,它应该是这样的:

private void picboxMain_MouseUp(object sender, MouseEventArgs e)
{
    int X = Convert.ToInt32(lblX.Text);
    int Y = Convert.ToInt32(lblY.Text);

    if ((X >= 155 && X <= 179) && (Y >= 145 && Y <= 160))
    {
        Form2 Form2 = new Form2();
        Form2.Show();
    }
}

将转化结果存储在变量XY中,然后比较您的条件。

您还可以查看int.TryParse方法以获得更安全的解析(解析失败时不会引发异常)。还可以考虑使用Microsoft coding conventions进行变量命名。

答案 3 :(得分:3)

Convert.ToInt32返回int您应该将其分配给变量,以将转换后的标签值与您的坐标进行比较

 private void picboxMain_MouseUp(object sender, MouseEventArgs e)
        {
             int lx= Convert.ToInt32(lblX.Text);
             int ly =Convert.ToInt32(lblY.Text);

            if ((lx >= 155 && lx <= 179) && (ly >= 145 && ly <= 160))
            {
                Form2 Form2 = new Form2();
                Form2.Show();
            }
        }

答案 4 :(得分:1)

您需要将转化结果存储到变量中。

private void picboxMain_MouseUp(object sender, MouseEventArgs e)
{
    int x = Convert.ToInt32(lblX.Text);
    int y = Convert.ToInt32(lblY.Text);

    if ((x >= 155 && x <= 179) && (y >= 145 && y <= 160))
    {
        Form2 Form2 = new Form2();
        Form2.Show();
    }
}
相关问题