Пользовательский глиф в заголовке DataGridView - PullRequest
2 голосов
/ 16 февраля 2010

У меня есть DataGridView , где я хотел бы нарисовать собственный глиф (предположим, треугольник) в заголовке столбца, когда пользователь щелкнет по нему.

У меня есть свойство EnableHeadersVisualStyles , установленное на False .

Есть ли у вас какие-либо примеры или предложения, как достичь желаемого результата? Нужно ли наследовать от DataGridView или DataGridViewColumn?

Заранее спасибо, Marco

Ответы [ 2 ]

0 голосов
/ 25 сентября 2013

Я нашел это полезным.Он отлично работает

Если вы хотите, чтобы заголовки столбцов были идеально отцентрированы, вам нужно отключить сортировку.Установите для свойства столбца SortMode значение «NonSortable».Это должно препятствовать тому, чтобы пространство зарезервировалось для глифа сортировки всякий раз, когда текст столбца центрирован или выровнен по правому краю.

От: Как я могу центрировать заголовок в столбце в DataGridView?

0 голосов
/ 16 февраля 2010

вам нужно сделать несколько вещей, сначала прикрепить обработчик к событию GridView_CellPainting внутри обработчика событий сделать так

void GridView_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
                e.PaintBackground( e.ClipBounds, true );
                StringFormat sf = new StringFormat();
                sf.Alignment = StringAlignment.Near;
                e.Graphics.DrawString( e.FormattedValue.ToString() this.ColumnHeadersDefaultCellStyle.Font, new SolidBrush( this.ColumnHeadersDefaultCellStyle.ForeColor ),e.CellBounds, sf );

                             //
                             //Place code to draw your custom gliph
                             //
                e.Handled = true;
            }
        }

строка "sf.Alignment = StringAlignment.Near;" установить текст для рисования по левому краю, если нужно, в противном случае измените

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