Разделитель тысяч с запятой в columnGridView, когда пользователь печатает

Я собираюсь разделить числа запятыми, что я ищу, именно так

Разделитель запятых в 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

Пожалуйста, если мои высказывания не ясны, скажите мне, и я объясню это подробнее

1 ответ

Решение

Проблема заключается в том, что при изменении текста текстового поля каретка переходит на первую позицию TextBox, Так что после настройки TextBox текст с форматированным текстом, вы должны добавить эту строку, чтобы перейти к концу:

base.SelectionStart = base.Text.Length; 
Другие вопросы по тегам