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

ajm*_*ajm 1 c# picturebox winforms

我试图以一种形式创建一个图片框,当在特定的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();
        }
    }
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Ant*_*t P 9

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();
}
Run Code Online (Sandbox Code Playgroud)

还要考虑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();
    }
}
Run Code Online (Sandbox Code Playgroud)