【发布时间】:2016-12-05 15:59:10
【问题描述】:
我要用逗号分隔数字, 我要找的就是这样的
但该问题的解决方案对我不起作用,因为我在 gridview 的列中而不是在文本框中执行此操作。
到目前为止我所做的(gridview 中列类的一部分):
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;
}
那么这段代码会发生什么:
当我在列中输入 12345 时,它变为 ---> 51,234
如果我的说法不清楚,请告诉我,我会进一步解释
【问题讨论】:
-
尝试在
Textsetter 中base.Text=GetFormattedText(value);之后添加base.SelectionStart = base.Text.Length; -
你为什么在属性的setter和event方法的override中使用你的方法?
-
@juharr 是的,代码有点奇怪,因为首先它甚至无法编译...也许如果 OP 发布真实代码我们可以提供帮助。
-
@sariiia 很高兴它有帮助。我不确定那是问题,但我猜它是。我已将其添加为答案:)
-
@juharr 谢谢你的回答,我只是想表明它是为 gridview 的列实现的一个大类的一部分,所以我所有的列都表现为这个类中的函数,(我可以在这个论坛上简单地写一下,但我认为这可能有助于帮助帮助者知道我有一个充满列函数的类),再次感谢你
标签: c# winforms gridview comma