用户键入时,columnGridView 中的千位分隔符和逗号
Posted
技术标签:
【中文标题】用户键入时,columnGridView 中的千位分隔符和逗号【英文标题】:Thousand Separator with comma in columnGridView when the user is typing 【发布时间】:2016-12-05 15:59:10 【问题描述】:我要用逗号分隔数字, 我要找的就是这样的
Comma Separator in c#
但该问题的解决方案对我不起作用,因为我在 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
如果我的说法不清楚,请告诉我,我会进一步解释
【问题讨论】:
尝试在Text
setter 中base.Text=GetFormattedText(value);
之后添加base.SelectionStart = base.Text.Length;
你为什么在属性的setter和event方法的override中使用你的方法?
@juharr 是的,代码有点奇怪,因为首先它甚至无法编译...也许如果 OP 发布真实代码我们可以提供帮助。
@sariiia 很高兴它有帮助。我不确定那是问题,但我猜它是。我已将其添加为答案:)
@juharr 谢谢你的回答,我只是想表明它是为 gridview 的列实现的一个大类的一部分,所以我所有的列都表现为这个类中的函数,(我可以在这个论坛上简单地写一下,但我认为这可能有助于帮助帮助者知道我有一个充满列函数的类),再次感谢你
【参考方案1】:
问题是当您更改文本框文本时,插入符号会转到TextBox
的第一个位置。所以在设置TextBox
文本与格式化文本后,必须添加这一行才能走到最后:
base.SelectionStart = base.Text.Length;
【讨论】:
我还有一个与此相关的问题,如果您能看一下我的问题,我将不胜感激,这有点奇怪,或者我的知识很少,所以当我想要的时候,我觉得很奇怪填充datagridview,例如我的datagridview有3列,名称,计数,费用,当我直接进入费用列时,它就像一个魅力,我的意思是当我正确输入时是单独的数字,但是当我第一次去计数时列然后收费,它不起作用,(我应该说在第二种情况下它只是调用我的财产的获取)我该怎么办,谢谢朋友 我在这里解释过了,***.com/questions/41115117/…真的谢谢你的帮助以上是关于用户键入时,columnGridView 中的千位分隔符和逗号的主要内容,如果未能解决你的问题,请参考以下文章