Devexpress Force String.Format";{0:P4}";显示+;签名

Devexpress Force String.Format";{0:P4}";显示+;签名,devexpress,Devexpress,我的数据库中有一个十进制列,其中的值存储为12.35 我们显示为12.35% 如果值为正值,客户机希望显示+12.35%(仅此字段)。我如何让它显示+符号。 我们在getter字符串中将textedit格式化为P4.format(“{0:P4}”,value) 这就是我尝试过的: 我可以通过使用Fomrat事件处理程序来实现这一点。我正在寻找一个更干净的方式,而不是下面的代码 private void txtMargin_FormatEditValue(object sender, De

我的数据库中有一个十进制列,其中的值存储为12.35 我们显示为12.35% 如果值为正值,客户机希望显示+12.35%(仅此字段)。我如何让它显示+符号。 我们在getter字符串中将textedit格式化为P4.format(“{0:P4}”,value)

这就是我尝试过的: 我可以通过使用Fomrat事件处理程序来实现这一点。我正在寻找一个更干净的方式,而不是下面的代码

    private void txtMargin_FormatEditValue(object sender, DevExpress.XtraEditors.Controls.ConvertEditValueEventArgs e)
    {
        if (e.Value != null)
        {
            if (e.Value.ToString().IndexOfAny(new char[] { '-', '+' }) < 0)
            {
                string val = e.Value.ToString();
                val = val.Replace("%", "");
                e.Value = string.Format("+{0}", (Convert.ToDouble(val) / 100).ToString("P4"));
                e.Handled = true;
            }
            else
            {
                string val = e.Value.ToString();
                val = val.Replace("%", "");
                e.Value = (Convert.ToDouble(val) / 100).ToString("P4");
            }
            e.Handled = true;
        }
    }

    private void txtMargin_ParseEditValue(object sender, DevExpress.XtraEditors.Controls.ConvertEditValueEventArgs e)
    {
        if (e.Value != null)
        {
            if (e.Value.ToString().IndexOf('%') < 0)
            {
                e.Value = (Convert.ToDouble(e.Value.ToString()) / 100).ToString("P4");
            }
        }
    }
private void txtMargin\u FormatEditValue(对象发送方,DevExpress.XtraEditors.Controls.ConvertEditValueEventArgs e)
{
如果(e.Value!=null)
{
if(e.Value.ToString().IndexOfAny(新字符[]{'-','+'})<0)
{
字符串val=e.Value.ToString();
val=val.Replace(“%”,“”);
e、 Value=string.Format(“+{0}”,(Convert.ToDouble(val)/100.ToString(“P4”);
e、 已处理=正确;
}
其他的
{
字符串val=e.Value.ToString();
val=val.Replace(“%”,“”);
e、 Value=(Convert.ToDouble(val)/100.ToString(“P4”);
}
e、 已处理=正确;
}
}
私有void txtMargin_ParseEditValue(对象发送方,DevExpress.XtraEditors.Controls.ConvertEditValueEventArgs e)
{
如果(e.Value!=null)
{
如果(例如Value.ToString().IndexOf('%')小于0)
{
e、 Value=(Convert.ToDouble(例如Value.ToString())/100.ToString(“P4”);
}
}
}

在表单中加载此代码:

 public Form1()
        {
            InitializeComponent();
        }

    private void Form1_Load(object sender, EventArgs e)
    {
        textEdit1.Properties.Mask.EditMask = "+#0.0000% ;-#0.0000%";
        textEdit1.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;
        textEdit1.Properties.Mask.UseMaskAsDisplayFormat = false;

        textEdit1.Properties.EditFormat.FormatString = "+#0.0000% ;-#0.0000%";;
    }

And in you TextBox Handel the event "`CustomDisplayText`" as :

     private void textEdit1_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e)
            {
             if (e.Value != null && !e.Value.Equals (""))
            e.DisplayText = (Convert.ToDouble(e.Value.ToString()) / 100).ToString("+#0.0000 % ;-#0.0000 %");

             }