文本框的子字符串文本和遮罩框的日期时间选取器
本文关键字:文本 时间 日期 选取 字符串 | 更新日期: 2023-09-27 18:36:42
我用来在输入所有内容后用按钮生成永久代码。这样:
mskCodePer.Text =
txtNom.Text.Substring(0, 3) +
txtPrenom.Text.Substring(0, 1) +
dptNaisc.Text.Substring(8, 2) +
dptNaisc.Text.Substring(4, 4) +
dptNaisc.Text.Substring(2, 3);
但是我的老师强迫我以一种在我打字时自动发生的方式做到这一点,但我不明白怎么做。
我尝试编写 textchange 事件的代码,但每次我只输入一个字母时,它都会崩溃并告诉我已生成 ArgumentOutOfRangeException。
您必须为这些文本框处理TextChanged
事件。
在单独的方法中分离maskbox
文本更新代码,并为每次TextBox
文本更改调用此函数/方法。
public void UpdateMask()
{
mskCodePer.Text =
(txtNom.Text!=null && txtNom.Text.Length > 2)? txtNom.Text.Substring(0, 3): string.Empty +
(txtPrenom.Text!=null && txtPrenom.Text.Length > 0)? txtPrenom.Text.Substring(0, 1): string.Empty +
(dptNaisc.Text!=null && dptNaisc.Text.Length > 9)? dptNaisc.Text.Substring(8, 2): string.Empty +
(dptNaisc.Text!=null && dptNaisc.Text.Length > 7)? dptNaisc.Text.Substring(4, 4): string.Empty +
(dptNaisc.Text!=null && dptNaisc.Text.Length > 5)? dptNaisc.Text.Substring(2, 3): string.Empty ;
}
// keep below logic in form_load or relevant event.
txtNom.TextChanged += (s,e) => {UpdateMask();}
txtPrenom.TextChanged += (s,e) => {UpdateMask();}
dptNaisc.TextChanged += (s,e) => {UpdateMask();}