gpt4 book ai didi

c# - 如何在用户输入时替换文本框中的字符? (在 C# 中)

转载 作者:太空狗 更新时间:2023-10-30 00:55:27 28 4
gpt4 key购买 nike

好的,我正在做的是一个文本框,其中根据从列表框中选择的内容填充了一些文本。

假设文本框看起来像这样:

blah blah ??? as?f

我需要弄清楚如何做的是每当用户点击文本框并删除一个“?”字符,我想用 * 替换该字符,然后每当他们尝试删除 * 时,它都会被替换为“?” , 这样最终的结果看起来像

blah blah **? as*f

如果他们只删除了一个“?”。

无论我在网上搜索了多久,我似乎都找不到类似的东西。我找到的最接近的是这个问题 - Determine when and which character is added or deleted in a Text Box

但这对我正在尝试做的事情并没有真正的帮助。如果有人知道从哪里开始寻找甚至如何去做,我会非常感激!

提前致谢!

编辑:是的,这是针对 Windows 窗体应用程序的,抱歉,我忘了具体说明。哦

最佳答案

你可以处理KeyDown事件并绕过默认处理。事件处理程序可能如下所示:

public void OnKeyDown(Object sender, KeyEventArgs e)
{
char[] text = textBox.Text.ToCharArray();
int pos = textBox.SelectionStart;

switch (e.KeyCode)
{
case Keys.Back: if (pos == 0) return; pos --; break;
case Keys.Delete: if (pos == text.Length) return; break;
default: return;
}

switch (text[pos])
{
case '?': text[pos] = '*'; break;
case '*': text[pos] = '?'; break;
default: return;
}
textBox.Text = new String(text);
e.Handled = true;
}

如果需要,您可能还想添加对修改键的检查、调整光标位置以及在选择文本时实现自定义行为。

关于c# - 如何在用户输入时替换文本框中的字符? (在 C# 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9442097/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com