powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridColumnStyle.GetMinimumHeight
8 сообщений из 8, страница 1 из 1
DataGridColumnStyle.GetMinimumHeight
    #32779608
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наследуюсь от стиля и перекрываю метод GetMinimumHeight для того что бы контролировать высоту строки в завизимости от ее значения, тоесть, если значение не помещается в одну строку, то хочу увеличить высоту. Но тут проблема - не знаю как определить номер строки (а соответсвенно и значение) строки, так как по аналогии с методом Paint() rowNum ко мне не приходит.
Может кто знает как это побороть...
...
Рейтинг: 0 / 0
DataGridColumnStyle.GetMinimumHeight
    #32779653
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
метод будет вызываться последовательно столько раз, сколько строк в datasource/datamember. поэтому нужно считать внутри метода и по CurrencyManager (тоже самому выбирать из BindingContext грида) запрашивать DataRow для подсчета.
---
зы
можно по полю dataGridRows грида установить высоту строчки через св-во Height
...
Рейтинг: 0 / 0
DataGridColumnStyle.GetMinimumHeight
    #32779665
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кузя
зы
можно по полю dataGridRows грида установить высоту строчки через св-во Height
что-то я не вижу такого поля в гриде
...
Рейтинг: 0 / 0
DataGridColumnStyle.GetMinimumHeight
    #32779672
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оно private - через reflection. поищи по этому форуму - уже обсуждали.
...
Рейтинг: 0 / 0
DataGridColumnStyle.GetMinimumHeight
    #32780478
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал вот так, корректно ли написано....?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
Public Class MyGridColumnStyle
 ....
 Dim bufferGraphics As Graphics
    Dim bufferSource As CurrencyManager
    Dim rowPos% =  0 

    'определение высоты строки
    Protected Overrides Function GetMinimumHeight() As Integer
        
        'если контроль отключен - возвращаем базовое значение
        If _fitText = False Then Return MyBase.GetMinimumHeight
        Try
            'иначе - получаем исочник данных
            If bufferSource Is Nothing Then
                bufferSource = Me.DataGridTableStyle.DataGrid.BindingContext(Me.DataGridTableStyle.DataGrid.DataSource, DataGridTableStyle.DataGrid.DataMember)
            End If
            'получаем значение текущее столбца
            Dim Value As String = Me.GetColumnValueAtRow(bufferSource, rowPos).ToString
            'получаем объект контекста графики 
            Dim col As New System.Drawing.Text.InstalledFontCollection
            If bufferGraphics Is Nothing Then
                bufferGraphics = Me.DataGridTableStyle.DataGrid.CreateGraphics
            End If
            'вычисляем высоту строки
            Dim h As Single = bufferGraphics.MeasureString(Value, _font, Me.Width).Height
            Return CInt(h)
        Catch ex As Exception
            Throw ex
        Finally
            'если достигли конца освобождаем все временные ресурсы
            If bufferSource.Count -  1  = rowPos Then
                bufferSource = Nothing
                bufferGraphics.Dispose()
                bufferGraphics = Nothing
                rowPos =  0 
                ' MsgBox(1)
            End If
            rowPos +=  1 
        End Try



    End Function
...
Рейтинг: 0 / 0
DataGridColumnStyle.GetMinimumHeight
    #32780483
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на Dim col As New System.Drawing.Text.InstalledFontCollection не обращать внимания...
...
Рейтинг: 0 / 0
DataGridColumnStyle.GetMinimumHeight
    #32780630
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторсделал вот таксверял со своим кодом - практически близнецы :)

ps: может так лучше ?
Код: plaintext
1.
2.
3.
4.
5.
If bufferSource.Count -  1  = rowPos Then
  ...
  rowPos =  0 
Else
  rowPos +=  1 
End If
...
Рейтинг: 0 / 0
DataGridColumnStyle.GetMinimumHeight
    #32781008
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кузясверял со своим кодом - практически близнецы :)
это радует
кузя
ps: может так лучше ?
Код: plaintext
1.
2.
3.
4.
5.
If bufferSource.Count -  1  = rowPos Then
  ...
  rowPos =  0 
Else
  rowPos +=  1 
End If


да, я вообщето после кое-какой отладки поменял на
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
            rowPos +=  1 
            'если достигли конца освобождаем все временные ресурсы
            If bufferSource.Count = rowPos Then
                ....
                rowPos =  0 
            End If

практически тоже
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridColumnStyle.GetMinimumHeight
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]