文本输入文本框时按钮出现问题

时间:2011-06-30 13:31:11

标签: c# winforms button textbox

我正在尝试使用以下代码将文本输入文本框时显示保存按钮:

    if (tbName.TextModified == true)
    {
        btnCTimetablesOk.Visible = true;
    }
     else
    {
        btnCTimetablesOk.Visible = false;
    }

但它在tbname.textmodified

时出错

当我们在文本框中输入文本时,还有其他方法可以看到按钮

这是我得到的错误“事件textbox.textmodified只能出现在+ =或 - =”的左侧

3 个答案:

答案 0 :(得分:2)

尝试使用文本框的EnterLeave事件来显示/隐藏按钮:

private void textBox1_Enter(object sender, System.EventArgs e)
{
    btnCTimetablesOk.Visible = true;
}

private void textBox1_Leave(object sender, System.EventArgs e)
{
    btnCTimetablesOk.Visible = false;
}

然后修改文本框以使用这些新方法。

enter image description here

答案 1 :(得分:1)

如果我正确地阅读了您的文字,您希望当文本框中包含文本时保存按钮可见,而当文本框为空时则不可见。如果是这种情况,您可以使用Leave事件(当文本框失去焦点时发生)和一个简单的if语句:

private void textBox1_Leave(object sender, System.EventArgs e)
{
  if(textBox1.Text != "")
    btnCTimetablesOk.Visible = true;
  else
    btnCTimetablesOk.Visible = false;
}

您还可以将此条件块放在任何其他方法中,这些方法会因更改框文本的事件而启动。

此外,您可能需要考虑使用Enabled而不是Visible,它会将按钮保留在表单上但会使文本变灰并且单击将不执行任何操作。

答案 2 :(得分:1)

我将在黑暗中采取刺戳并假设该按钮与文本框相关,您可能希望某人能够在文本框中键入内容然后单击按钮。您可能希望用户必须输入内容,然后标签或单击其他位置以使按钮可见然后单击按钮。

tbName_TextChanged(object sender, EventArgs e)
{
    btnCTimetablesOk.Visible = !String.IsNullOrEmpty(tbName.Text)
}

如果您收到该错误,因为TextModified不是布尔属性,它是一个事件,如TextChanged或Leave或Enter。你可以为它分配一个事件处理程序,但你不能像那样检查它。

另外,我个人讨厌系统匈牙利语用于winforms控件。我宁愿有一个timetablesOkButton比一个btnCTimeablesOK按钮。这样,如果您还有timetablesNameTextBox,您可以一眼看出按钮和文本框是否匹配。当然,这可能不适合你。