我正在用C#制作一个简单的记事本程序,在我的主要表单中我有一个文本框,它有一些奇怪的东西,我在编辑菜单中有一个删除on_click我有一个事件
txtContent.text = "";
Run Code Online (Sandbox Code Playgroud)
也试过
txtContent.Text = string.Empty;
Run Code Online (Sandbox Code Playgroud)
和
txtContent.Clear();
Run Code Online (Sandbox Code Playgroud)
但是每次操作之后我的Caret都会消失,我认为这可能是一个焦点问题,但我也没有尝试过.无意中我最小化了我的记事本而不是再次打开它Cursor回来了它并没有在删除操作后消失我在网上搜索了这个问题但找不到任何希望你有一些建议
这是我的完整代码,这可能会使问题更清晰
private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
{
textBox1.Clear();
time.Interval = 20000;
time.Enabled = true;
time.Start();
time.Tick+=focus;
}
void focus(object sender, EventArgs e)
{
textbox1.Focus();
}
Run Code Online (Sandbox Code Playgroud)
这是因为当用户选择菜单项时,菜单现在具有焦点,因此在文本框中显示光标没有意义.
如果要显示光标,则需要在菜单操作完成后将焦点设置回文本框.
例如(使用按钮):
private void button1_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox1.Focus();
}
Run Code Online (Sandbox Code Playgroud)
但请注意,根据菜单的行为,这可能会有点棘手.如果焦点没有返回到文本框,您可能需要添加一个计时器来设置焦点,以便菜单可以完成它正在做的任何事情,而不是"重新窃取"焦点.
| 归档时间: |
|
| 查看次数: |
1710 次 |
| 最近记录: |