我试图在文本框中输入永久前缀。就我而言,我想要有以下前缀:
DOMAIN\
这样用户只需在域前缀后输入用户名即可。这不是我必须做或追求的事情,但我的问题更多是出于好奇。
我试图想出一些逻辑来做到这一点TextChangedEvent
但是,这意味着我需要知道哪些字符已在何处删除,然后预先附加DOMAIN\
无论他们的输入是什么 - 我无法弄清楚这一点的逻辑,所以我无法发布除了我所到达的地方之外我所尝试过的内容。
public void TextBox1_TextChanged(object sender, EventArgs e)
{
if(!TextBox1.Text.Contains(@"DOMAIN\")
{
//Handle putting Domain in here along with the text that would be determined as the username
}
}
我在网上查了一下,找不到任何东西如何让 winforms 文本框中的文本带有不可更改的文本前缀?试图做类似的事情,但答案并没有真正帮助。
关于如何保留前缀的任何想法DOMAIN\
in a TextBox
?
这里说明了如何使用 KISS 原理。当用户使用 Ctrl+V 或上下文菜单的剪切和粘贴命令时,尝试捕获按键不会执行任何操作。当发生任何伪造前缀的事情时,只需恢复文本即可:
private const string textPrefix = @"DOMAIN\";
private void textBox1_TextChanged(object sender, EventArgs e) {
if (!textBox1.Text.StartsWith(textPrefix)) {
textBox1.Text = textPrefix;
textBox1.SelectionStart = textBox1.Text.Length;
}
}
并帮助用户避免意外编辑前缀:
private void textBox1_Enter(object sender, EventArgs e) {
textBox1.SelectionStart = textBox1.Text.Length;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)