2016-12-05 45 views
0

我会用逗号分隔的数字, 我所寻求的是完全一样千位分隔符与columnGridView逗号,当用户键入

Comma Separator in c#

,但这一问题的解决方案没有奏效对我来说,因为我在gridview而不是文本框中的列中执行此操作。

我做了什么至今(类的一部分列在GridView):

当我在列中键入12345:

public override string Text 
{ 
    get { } 
    set { base.Text = GetFormattedText(value); } 
} 

protected override void OnTextChanged(System.EventArgs e) 
{ 
    base.OnTextChanged(e); 
    Text = GetFormattedText(Text); 
} 

protected virtual string GetFormattedText(string text) 
{ 
    string strText = text.Replace(",", ""); 
    decimal decValue = System.Convert.ToDecimal(strText); 
    strText = decValue.ToString("#,##0"); 
    return strText; 
} 

那么,与这一段代码发生它变得---> 51234

Pleae如果我的说法是不明确的告诉我,我会解释更

+0

尝试增加'base.SelectionStart = base.Text.Length;'的'Text'二传手后' base.Text = GetFormattedText(value);' – Pikoh

+2

为什么在属性的setter和事件方法的覆盖中使用你的方法? – juharr

+0

@juharr是的,代码有点奇怪,因为首先它甚至不会编译...也许如果OP发布真正的代码,我们可以提供帮助。 – Pikoh

回答

3

在p问题在于,当您更改文本框文本时,插入符号将转到TextBox的第一个位置。所以设定TextBox文字与格式的文本后,您必须添加此行去年底:

base.SelectionStart = base.Text.Length; 
+0

我有另一个与此相关的问题,我很感激,如果你可以看一下我的问题,它有点奇怪,或者我的知识可能很少,所以在我看来很奇怪,当我想填充datagridview,例如我的datagridview有3列,名称,计数,费用,当我只是直截了当地去费列,它的作用就像一个魅力,我的意思是分开的数字,当我打字正确,但是当我第一次去计算栏和费用,它不起作用,(我应该说,在第二种情况下,它只是打电话给我的财产)我该怎么办,thx朋友 – sariiia

+0

我在这里解释它,http://stackoverflow.com/questions/41115117/thousand-seperator-does-not-work-correctly-in-data-gridview非常感谢您的帮助 – sariiia