Цвет изменения кнопки в ячейке DataGridView

Вам нужно добавить переход к преобразованию.

 #menu .nav-item {
  transform: translateX(85vh);
  display: none;
  transition: all 1s;
}

См. эту статью для более подробной информации о переходах и преобразованиях

.

12
задан Tomas Pajonk 25 February 2009 в 17:20
поделиться

4 ответа

Согласно MSDN:

Когда визуальные стили включены, кнопки в столбце кнопки красятся с помощью ButtonRenderer, и стили ячеек, указанные через свойства, такие как DefaultCellStyle, не имеют никакого эффекта.

Поэтому у Вас есть один из двух вариантов. В Вашем Program.cs можно удалить эту строку:

Application.EnableVisualStyles();

который заставит его работать, но заставить все остальное быть похожим на дерьмо. Ваша другая опция, и Вы не собираетесь любить этого, должны наследоваться DataGridViewButtonCell и переопределить Краску () метод. Можно затем использовать статический метод для класса ButtonRenderer под названием DrawButton, для рисования кнопки сами. Это означает выяснять, какое состояние ячейка в настоящее время находится в (нажата, парение и т.д.) и рисование углов и границ и т.д... Вы получаете идею, это выполнимо, но ОГРОМНАЯ боль.

Если Вы хотите к тому, хотя, вот просто некоторый пример кода для запущения Вас:

 //Custom ButtonCell
 public class MyButtonCell : DataGridViewButtonCell
    {
        protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex, DataGridViewElementStates elementState, object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)
        {
            ButtonRenderer.DrawButton(graphics, cellBounds, formattedValue.ToString(), new Font("Comic Sans MS", 9.0f, FontStyle.Bold), true, System.Windows.Forms.VisualStyles.PushButtonState.Default);
        }
    }

Затем вот является тест DataGridView:

DataGridViewButtonColumn c = new DataGridViewButtonColumn();
            c.CellTemplate = new MyButtonColumn();
            this.dataGridView1.Columns.Add(c);
            this.dataGridView1.Rows.Add("Click Me");

Весь этот образец делает, краска кнопка со шрифтом, являющимся "Comic Sans MS". Это не принимает во внимание состояние кнопки, поскольку Вы будете видеть, когда Вы запустите приложение.

Удачи!!

13
ответ дан 2 December 2019 в 03:29
поделиться

Если эти ячейки содержат кнопку, я совершенно уверен, что необходимо получить доступ к свойству BackColor той кнопки. Т.е. доберитесь, значение ячейки преобразовывают его в кнопку и устанавливают, это - свойство.

1
ответ дан 2 December 2019 в 03:29
поделиться

Я думаю, что Вы получаете доступ к нему неправильно:

row.Cells[2].Style.BackColor = System.Drawing.Color.Red;

Вы говорите, обновляет "схему" кнопки, но она действительно обновляет ячейку позади кнопки.

что-то вроде этого должно работать:

row.Cells[2].ButtonName.Style.BackColor = System.Drawing.Color.Red;
0
ответ дан 2 December 2019 в 03:29
поделиться

Я пропустил примечание Дейва к ответу Томаша, поэтому я просто размещаю простое решение этой проблемы.

Обновите свойство FlatStyle колонки Button до Popup, а затем, изменив backcolor и forecolor, вы можете изменить внешний вид кнопки.

DataGridViewButtonColumn c = (DataGridViewButtonColumn)myGrid.Columns["colFollowUp"];
c.FlatStyle = FlatStyle.Popup;
c.DefaultCellStyle.ForeColor = Color.Navy;
c.DefaultCellStyle.BackColor = Color.Yellow;
27
ответ дан 2 December 2019 в 03:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: