正则表达式替换 textbox.text 在第二个 winform 冻结

Regex replace textbox.text in secound winform freezes

我有问题,我有一个 winform 打开不同的表格,输入数字。
对于每个第二个输入,它必须附加 :
问题是它冻结了程序。

这个有效:

txt.Text = Regex.Replace(txt.Text, @".{2}(?!$)", "[=11=]");

这会导致 winform 冻结:

txt.Text = Regex.Replace(txt.Text, @".{2}(?!$)", "[=12=]:");

我做错了什么吗?

走错路

txt.Text = Regex.Replace(txt.Text, @".{2}(?!$)", "[=10=]:");

正确的方式

TextBox textBox = sender as TextBox;
String txt = textBox.Text;
textBox.text = Regex.Replace(txt, @".{2}(?!$)", "[=11=]:");