DataGridViewCellStyle.ForeColor не работает должным образом - PullRequest
1 голос
/ 11 августа 2011

Я - мое приложение WinForms 2.0. Я использую DataGridView и пользовательский элемент управления для редактирования в текущей ячейке (IDataGridViewEditingControl).

В текущей ячейке используется мой пользовательский элемент управления для редактирования, который наследуется от текстового поля и реализуетИнтерфейс IDataGridViewEditingControl.Теперь этот элемент управления регистрируется в событии TextChanged для выполнения некоторой логики проверки при редактировании значения и в событии Leave для применения некоторых визуальных эффектов из пользовательского элемента управления для редактирования к ячейке DataGridView.

Код выглядит нескольконапример:

public class CustomerTextEditingControl : CustomerTextBox, IDataGridViewEditingControl
{
    ...
    protected override void OnLeave(object sender, EventArgs e)
    {
        dataGridView[_col, _row].Style.BackColor = BackgroundColor;
        dataGridView[_col, _row].Style.ForeColor = ForegroundColor;
        ...
    }
    ...
}

Вот моя проблема: хотя фон ячейки правильно отображается в любом цвете BackgroundColor, сам текст всегда отображается в черном, независимо от цвета ForegroundColor.Сначала я подумал, что может быть другой стиль, который применяется к содержимому ячейки, но я не смог найти там ничего.Так что я озадачен прямо сейчас: -)

Любая помощь очень ценится!

Спасибо Марк

1 Ответ

1 голос
/ 02 сентября 2011

Обнаружена проблема: класс DataGridView был разделен на подклассы, а метод OnPaintCell переопределен.Единственный атрибут стиля, который был учтен, был BackColor ...

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