使用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
控件必须始终显示其默认提示符。
答案 0 :(得分:0)
在表单的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.
}
}
希望有所帮助,