【问题标题】:Non-invocable member 'System.Windows.Forms.Control.Text' cannot be used like a method不可调用的成员 'System.Windows.Forms.Control.Text' 不能像方法一样使用
【发布时间】:2017-04-11 05:56:57
【问题描述】:

这里的新手程序员很抱歉,如果我错过了一些非常简单的东西,这是我的代码:

namespace Programming_Assignment_2
{
  public partial class Form1 : Form
  {
    string combination;
    const int MinLength = 6;

    bool CombinationCheck(string combination)
    {
        if (combination.Length > 5)
            return true;
        else
            return false;
    }

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    }

    private void btn_SetComb_Click(object sender, EventArgs e)
    {
        combination = My_Dialogs.InputBox("Please enter a password longer than 5 characters: ");
        if (combination.Length < MinLength)
            My_Dialogs.InputBox("Error! Please make sure password is longer than 5 characters: ");
        else
        {
            MessageBox.Show("Thank you, password saved.");
        }
    }

    private void label1_Click(object sender, EventArgs e)
    {
    }

    private void text_SafeStatus_TextChanged(object sender, EventArgs e)
    {                    
      bool CombinationCheck;
      if (
        text_SafeStatus.Text("Combination Set"));
      else (
        text_SafeStatus.Text("Combination Not Set"));   
    }
  }
}

所以底部的两个 .Text 会返回 Title 中的错误加上我在这里和那里得到一些小错误,例如

只有赋值、调用、递增、递减、等待和新对象表达式可以用作语句

else 后面的括号..

再次对可能是菜鸟的问题感到抱歉,但我似乎找不到特别帮助我的答案

编辑 1:

所以文本错误已为我修复,谢谢,但我还有另一个问题是试图从布尔值中获取真/假值并使用它来确定文本框显示的内容..

if bool CombinationCheck;
if CombinationCheck true;
text_SafeStatus.Text = "Combination Set";
else
text_SafeStatus.Text = "Combination Not Set";

这就是我目前拥有的,我不知道如何使这项工作。

【问题讨论】:

  • if (combinationCheck) {text_SafeStatus.Text = "组合集" } else {...}
  • @JeroenHeier 怎么样CombinationCheck? text_SafeStatus.Text = "Combination Set" : text_SafeStatus.Text = "Combination Not Set";
  • @CameronFairbun,您应该接受解决您的 original 问题的答案,并为 new 问题发布 new 问题

标签: c#


【解决方案1】:

需要赋值TextBox文本属性,因为没有Text()这样的方法,所以使用赋值运算符=来赋值。

text_SafeStatus.Text = "Combination Set";

如果您需要检查Textbox 的值,请使用== 比较运算符,不要使用单个= 进行比较,如上例= 是赋值运算符,仅用于分配一个值。

if (text_SafeStatus.Text == "Combination Set")
    // do something //

编辑

CombinationCheck 根据传入方法的字符串长度返回真或假。

将此代码 sn-p 从 text_SafeStatus_TextChanged 移动到 btn_SetComb_Click 事件。将其粘贴到现有代码下方。

private void btn_SetComb_Click(object sender, EventArgs e)
{
    // .. existing codes .. //

    if (CombinationCheck(combination))
        text_SafeStatus.Text = "Combination set";
    else
        text_SafeStatus.Text = "Combination not set";
}

【讨论】:

  • 您好,感谢您的快速回复,修复了该错误。我还有另一个问题是如何使用 bool 的值 .. 像这样 if bool CombinationCheck;如果组合检查为真; text_SafeStatus.Text = "组合集"; else text_SafeStatus.Text = "未设置组合";
  • 还解释了如何修复第 48 行中的 Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement 错误。
  • @Abdul 我使用了更新后的代码,它可以工作,但我现在遇到的问题是文本框不显示组合不或组合集,直到我点击它并输入。
  • @CameronFairburn 这是因为该代码在 text_SafeText_TextChanged 事件中,您希望如何执行此代码?
  • 我希望文本框默认为“未设置组合”,一旦用户输入长度大于 5 个字符的字符串组合,它应该在文本框中显示组合设置。
猜你喜欢
  • 2013-08-10
  • 2013-07-07
  • 1970-01-01
  • 1970-01-01
  • 2016-05-01
  • 2016-04-11
  • 2018-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多