繁体   English   中英

我如何在TextEdit Devexpress中更改自定义输入

[英]How i change custom input in TextEdit Devexpress

我有属性最大值为6的TextEdit,默认值为“ 000000”,我将根据用户输入替换该值。 例如,当用户在TextEdit中输入“ 69”时,TextEdit的最终值为“ 000069”。 我如何使用C#准备呢?

请帮我准备一下...

在TextEdit控件上使用“编辑蒙版”。 若要实现所需的功能,可以将TextEdit.Properties.Mask.MaskType属性设置为Simple ,并将TextEdit.Properties.Mask.EditMask属性设置为“ 000000”。

查看文档- 遮罩编辑器概述

要启用简单屏蔽模式,请将RepositoryItemTextEdit.Mask对象的MaskProperties.MaskType属性设置为MaskType.Simple 掩码本身应通过MaskProperties.EditMask属性指定。

例:

textEdit1.Properties.Mask.EditMask = "000000";
textEdit1.Properties.Mask.UseMaskAsDisplayFormat = true;
textEdit1.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Simple;

如果您不想掩盖编辑器控件,请使用Formatting ,这是一个示例:
如何:将自定义文本添加到格式化的字符串

textEdit1.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
textEdit1.Properties.DisplayFormat.FormatString = "{0:d6}";

希望这个帮助

尝试以下操作(将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;
                }));
            }
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM