Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在文本框中输入文本时按钮出现问题_C#_Winforms_Button_Textbox - Fatal编程技术网

C# 在文本框中输入文本时按钮出现问题

C# 在文本框中输入文本时按钮出现问题,c#,winforms,button,textbox,C#,Winforms,Button,Textbox,我试图使用以下代码在文本框中输入文本时使“保存”按钮可见: if (tbName.TextModified == true) { btnCTimetablesOk.Visible = true; } else { btnCTimetablesOk.Visible = false; } 但它在tbname.textmodified处给出了错误 当我们在文本框中输入文本时,是否有其他方式可以看到按钮 这是我收到的错误

我试图使用以下代码在文本框中输入文本时使“保存”按钮可见:

    if (tbName.TextModified == true)
    {
        btnCTimetablesOk.Visible = true;
    }
     else
    {
        btnCTimetablesOk.Visible = false;
    }
但它在tbname.textmodified处给出了错误

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


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

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

private void textBox1_Leave(object sender, System.EventArgs e)
{
    btnCTimetablesOk.Visible = false;
}
然后修改文本框以使用这些新方法

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

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

private void textBox1_Leave(object sender, System.EventArgs e)
{
    btnCTimetablesOk.Visible = false;
}
然后修改文本框以使用这些新方法


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

private void textBox1_Leave(object sender, System.EventArgs e)
{
  if(textBox1.Text != "")
    btnCTimetablesOk.Visible = true;
  else
    btnCTimetablesOk.Visible = false;
}
您还可以将此条件块放入由更改框文本的事件启动的任何其他方法中


也可以考虑使用启用而不是可见,它将在窗体上留下按钮,但会使文本灰化,点击将不起作用。

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

private void textBox1_Leave(object sender, System.EventArgs e)
{
  if(textBox1.Text != "")
    btnCTimetablesOk.Visible = true;
  else
    btnCTimetablesOk.Visible = false;
}
您还可以将此条件块放入由更改框文本的事件启动的任何其他方法中


也可以考虑使用启用的,而不是可见的,它会将按钮保留在表单上,但会使文本变灰,单击将不起任何作用。

我将在这里暗中试探一下,假设按钮与文本框相关,您可能希望有人能够在文本框中键入内容,然后单击按钮。您可能不希望用户必须键入某个内容,然后单击tab out或单击其他位置以使按钮可见,然后单击按钮

tbName_TextChanged(object sender, EventArgs e)
{
    btnCTimetablesOk.Visible = !String.IsNullOrEmpty(tbName.Text)
}
顺便说一句,之所以会出现这个错误,是因为TextModified不是一个布尔属性,它是一个事件,比如TextChanged、Leave或Enter。您可以为它分配一个事件处理程序,但不能这样检查它


另外,我个人讨厌winforms控件的匈牙利系统。我更希望有一个TimeTablesOK按钮,而不是一个btnCTimeablesOK按钮。这样,如果您还有一个timetablesNameTextBox,您可以一眼看到按钮和textbox匹配。当然,这可能不取决于您。

我将在这里暗中试探一下,假设按钮与文本框相关,您可能希望有人能够在文本框中键入内容,然后单击按钮。您可能不希望用户必须键入某个内容,然后单击tab out或单击其他位置以使按钮可见,然后单击按钮

tbName_TextChanged(object sender, EventArgs e)
{
    btnCTimetablesOk.Visible = !String.IsNullOrEmpty(tbName.Text)
}
顺便说一句,之所以会出现这个错误,是因为TextModified不是一个布尔属性,它是一个事件,比如TextChanged、Leave或Enter。您可以为它分配一个事件处理程序,但不能这样检查它


另外,我个人讨厌winforms控件的匈牙利系统。我更希望有一个TimeTablesOK按钮,而不是一个btnCTimeablesOK按钮。这样,如果您还有一个timetablesNameTextBox,您可以一眼看到按钮和textbox匹配。当然,这可能不取决于您。

这是在winforms还是asp.net中?您会遇到什么错误?这是WinForm应用程序吗?如果这是WinForms,请看这里:“event textbox.textmodified只能出现在+=或-=”的左侧。这是我收到的错误。这是WinForms或asp.net中的错误吗?您收到了什么错误?这是WinForm应用程序吗?如果这是WinForms,请看这里:“event textbox.textmodified只能出现在+=或-=”的左侧。这是我收到的错误