Другой формат чисел для буфера обмена? - PullRequest
2 голосов
/ 19 июня 2010

У меня есть программа, которая отображает числа в System.Windows.Forms.DataGridView.Я форматирую эти числа в соответствии с региональными настройками пользователя, что вызывает проблемы при попытке скопировать и вставить указанные числа в Excel.Например, 123 456 789,00 - это правильный локализованный формат на финском языке, но Excel интерпретирует его как строку, а не как число.Есть ли способ заставить Excel понимать тысячи разделителей в числах или использовать другой формат чисел для буфера обмена?

1 Ответ

1 голос
/ 19 июня 2010

Вы можете создать свой собственный производный класс DGV и переопределить метод GetClipboardContent ().Что позволяет форматировать строку способом, совместимым с Excel.Примерно так:

using System;
using System.Windows.Forms;

class MyDGV : DataGridView {
    public override DataObject GetClipboardContent() {
        if (this.SelectedCells.Count == 1 && this.SelectedCells[0].ColumnIndex == 1) {
            string value = string.Format("{0:N2}", this.SelectedCells[0].Value);
            return new DataObject(DataFormats.Text, value);
        }
        return base.GetClipboardContent();
    }
}

Не проверено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...