我有属性最大值为6的TextEdit,默认值为“ 000000” 我将根据用户输入替换该值。例如,当用户在TextEdit中输入“ 69”时,TextEdit的最终值为“ 000069”。我如何使用C#进行准备?
请帮助我做准备...
答案 0 :(得分:1)
在TextEdit控件上使用“编辑蒙版”。要实现所需的功能,可以将TextEdit.Properties.Mask.MaskType属性设置为Simple,并将TextEdit.Properties.Mask.EditMask属性设置为“ 000000”。
要启用简单屏蔽模式,请设置MaskProperties.MaskType RepositoryItemTextEdit.Mask对象的属性MaskType.Simple。 掩码本身应通过MaskProperties.EditMask指定 属性。
示例:
textEdit1.Properties.Mask.EditMask = "000000";
textEdit1.Properties.Mask.UseMaskAsDisplayFormat = true;
textEdit1.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Simple;
如果您不想掩盖编辑器控件,请使用Formatting,这是一个示例:
How to: Add Custom Text to a Formatted String
textEdit1.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
textEdit1.Properties.DisplayFormat.FormatString = "{0:d6}";
希望获得帮助
答案 1 :(得分:1)
尝试此操作(将EditValueChanging事件处理程序添加到您的文本编辑中):
private void textEdit_EditValueChanging(object sender, DevExpress.XtraEditors.Controls.ChangingEventArgs e)
{
const int MaxLength = 6;
var editor = (DevExpress.XtraEditors.TextEdit)sender;
if (e.NewValue != null)
{
var s = (string)e.NewValue;
s = s.TrimStart('0');
if (string.IsNullOrWhiteSpace(s) == false)
{
BeginInvoke(new MethodInvoker(delegate
{
editor.Text = s.Substring(0, Math.Min(s.Length, MaxLength)).PadLeft(MaxLength, '0');
editor.SelectionStart = MaxLength;
}));
}
}
}