Pie*_*adz 5 c# textbox selection winforms
我想禁用选择文本并单击TextBox中的文本中间,但用户必须能够输入此TextBox并在早期文本的末尾写入,因此我无法创建它ReadOnly或Enable = false.
我尝试处理MouseDown并执行以下操作:
input.Select(input.Text.Length, 0);
Run Code Online (Sandbox Code Playgroud)
它有助于将光标放在文本的中间,但用户仍然可以从最后进行选择.
我也创建了一个MessageBox()on MouseDown事件,但在这种情况下,用户无法单击textBox并写入任何内容.
最后一次尝试是focus()在一段时间后设置另一个控制并重新关注,但它根本不起作用.用户仍然可以进行选择.
我该怎么做?
这个Click活动怎么样?
编辑:同样做DoubleClick和MouseLeave覆盖所有情况.您可以拥有一个公共事件处理程序.
private void textBox1_Click(object sender, EventArgs e)
{
((TextBox) sender).SelectionLength = 0;
}
Run Code Online (Sandbox Code Playgroud)
如果它适合 UI/用户模型,另一种方法是使用两个文本框:一个是只读文本框,其中包含用户可以看到并执行操作的前一个文本(如果这是他需要做的事情),另一个是可编辑文本框新文本以及用于将新文本提交到只读文本框(和持久层)的按钮。
这种方法不仅可以说更加用户友好——可编辑框是完全可编辑的,而不仅仅是“可追加”,当用户按下退格键时,这会让人感到困惑——而且还需要更少的与框架的冲突,使这些框满足您的需要。