从xaml中的文本框中获取价值

时间:2013-07-26 13:46:36

标签: c# xaml textbox

private void search(object sender, RoutedEventArgs e)
{
    if (number.Text < 455)
    {
        string site;
        site = number.Text;
        var rs = Application.GetResourceStream(new Uri("def/f" + site + ".html", UriKind.Relative));
        StreamReader sr = new StreamReader(rs.Stream);
        browser.NavigateToString(sr.ReadToEnd());
    }
    else
    {
        MessageBox.Show("Enter Value between 1 to 454");
    }
} 
我给了      InputScope = “数” 在TextBox中。所以用户不能输入单词。 我已经创建了带有名称的按钮,因此如果按下按钮,则会调用搜索功能。我需要验证用户是否在1到454之间输入了文本。如果是,则应该继续。其他明智的我应该像我上面那样提醒他们。但它显示错误,

Error 1 Operator '<' cannot be applied to operands of type 'string' and 'int'

6 个答案:

答案 0 :(得分:1)

您正在比较Text字符串与整数455。在比较之前将文本转换为整数并执行此操作。

if (Convert.ToInt32(number.Text) < 455)

这是您的解决方案

int num = 0;

if (int.TryParse(number.Text, out num) && num > 0 && num < 455)
{
    string site;
    site = number.Text;
    var rs = Application.GetResourceStream(new Uri("def/f" + site + ".html", UriKind.Relative));
    StreamReader sr = new StreamReader(rs.Stream);
    browser.NavigateToString(sr.ReadToEnd());
}
else
{
    MessageBox.Show("Enter Value between 1 to 454");
}

答案 1 :(得分:1)

嗯,这条消息应该告诉你什么是错的。 Textstring,您将其用作int

private void search(object sender, RoutedEventArgs e)
{
    int n;
    if(int.TryParse(number.Text, out n))
    {
       if (n < 455)
       {
           var rs = Application.GetResourceStream(new Uri("def/f" + number.Text + ".html", UriKind.Relative));
           StreamReader sr = new StreamReader(rs.Stream);
           browser.NavigateToString(sr.ReadToEnd());
       }
       else
       {
           MessageBox.Show("Enter Value between 1 to 454");
       }
    }
} 

答案 2 :(得分:0)

您不能保证用户会输入有效的号码,因此这是一种检查方式:

int parsed;

if (int.TryParse(number.Text, out parsed) && parsed < 455)
{
    // Logic to execute when valid
}
else
{
    MessageBox.Show("Enter Value between 1 to 454");
} 

答案 3 :(得分:0)

您应该使用Convert.ToInt32()int.TryParse()将字符串转换为整数以进行比较。你无法直接比较字符串和整数。

答案 4 :(得分:0)

常见的C#问题

int iNumber = -1;
if(int.TryParse(textBoxNumber.Text, out iNumber))
{
 // iNumber now have value you can check
 // ...
}
else { } // failed to parse string

答案 5 :(得分:0)

应该是这样的:我们应该检查(num&gt; 0&amp;&amp; num&lt; 455)。我们也应该检查-ve值。

int num = -1

if(int.TryParse(number.Text, out num))
    {
       if (num > 0 && num < 455)
       {
         //Do here 
       }
       else
       {
           MessageBox.Show("Enter Value between 1 to 454");
       }
    }