如何避免MaskedTextBox PromptChar被删除,当它的容器模态表单显示
本文关键字:模态 显示 表单 MaskedTextBox 何避免 PromptChar 删除 | 更新日期: 2023-09-27 18:11:17
使用VS 2015和c#…
我有这个简单的模态Form
,上面只有一个MaskedTextBox
控件。
每次在ModalForm
和.ShowDialog()
第一次显示之后,控制中的PromptChar
就消失了。
要重现此问题:
public ModalForm()
{
InitializeComponent();
maskedTextBox1.Mask = "00/00/0000"; // happens with any
maskedTextBox1.TextMaskFormat = MaskFormat.IncludeLiterals;
}
主Form
代码:
public partial class Form1 : Form
{
private ModalForm modalForm = new ModalForm();
private void button1_Click(object sender, EventArgs e)
{
modalForm.ShowDialog();
}
}
控件的提示符在其内容更改时再次出现,但第一次视图不存在。
将TextMaskFormat
属性设置为IncludePromptAndLiterals
可能是一个解决方案,但是,.Text
必须清理。
还有别的办法吗?对于我来说,所有MaskedTextBox
控件必须始终显示其默认提示符。
在Form的Shown
事件上试试,
private void ModalForm_Shown(object sender, EventArgs e){
if (!maskedTextBox1.MaskCompleted) // if there is missing parts it will return false, every false means prompts need in control
{
string tempText = maskedTextBox1.MaskedTextProvider.ToDisplayString(); // get the last value with prompts
maskedTextBox1.Text = "";
maskedTextBox1.Text = tempText; // then set the last value.
}
}
希望帮助,