Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как растянуть таблицу в DataGrid? / 4 сообщений из 4, страница 1 из 1
17.01.2005, 13:38
    #32867729
mod
mod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как растянуть таблицу в DataGrid?
При растягивании формы у меня растягивается и DataGrid в ней находящаяся, а вот сгенерёная табличка не растягивается (оно и понятно). Можно как-нить заставить эту табличку занимать по ширине всю DataGrid?
...
Рейтинг: 0 / 0
17.01.2005, 13:45
    #32867752
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как растянуть таблицу в DataGrid?
в двух словах -
не растягиваются как я понял на самом деле колонки?
если да, то подписываешься на ресайз грида и пробегаешь по его таблице стилей, выставляя нужную ширину колонок, вот пример
Код: 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.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
Public Class MyDataGrid
    Inherits DataGrid

...

  Private Sub DataGrid_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Resize
         AutoArrange()

    End Sub



Private Sub AutoArrange()
        If Me.TableStyles.Count =  0  _
        Or DataSource Is Nothing Then Exit Sub
        Dim ts As DataGridTableStyle = Me.TableStyles( 0 )
        Dim colStyles As ArrayList = Me.GetVisibleColumns 'получение массива видимых колонок
        Dim ub% = colStyles.Count -  1 
        If ub = - 1  Then Exit Sub
         Dim colStyle As DataGridColumnStyle


        Dim delta% =  0 
        Select Case Me.BorderStyle
            Case BorderStyle.Fixed3D
                delta += SystemInformation.Border3DSize.Width *  2 
            Case BorderStyle.FixedSingle
                delta += SystemInformation.BorderSize.Width *  2 
        End Select
        If ts.RowHeadersVisible Then
            delta += ts.RowHeaderWidth +  2 
        End If
        delta += ub

        Dim w% = Me.Width - delta
        Dim totalWidth%
        Try
            Me.SuspendLayout()
            For i As Int32 =  0  To ub
                colStyle = colStyles(i)
                totalWidth += colStyle.Width
            Next

            For i As Int32 =  0  To ub
                colStyle = colStyles(i)
                colStyle.Width = colStyle.Width / (totalWidth) * w  '* colStyle.Width
            Next
        Finally
            Me.ResumeLayout()
        End Try


    End Sub

    'создание массива видимых колонок
    Private Function GetVisibleColumns() As ArrayList
        Dim ret As New ArrayList
        Dim ts As DataGridTableStyle = Me.TableStyles( 0 )

        Dim dt As DataTable = Me.DataSource
        Dim ub% = ts.GridColumnStyles.Count -  1 
        For i As Int32 =  0  To ub
            If dt.Columns.Contains(ts.GridColumnStyles(i).MappingName) Then
                If ts.GridColumnStyles(i).Width <>  0  Then ret.Add(ts.GridColumnStyles(i))
            End If

               Next
        Return ret
    End Function
end Class
...
Рейтинг: 0 / 0
18.01.2005, 07:29
    #32869073
mod
mod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как растянуть таблицу в DataGrid?
Да, колонки. Спасибо, попробую.....
...
Рейтинг: 0 / 0
05.02.2005, 07:47
    #32902463
mod
mod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как растянуть таблицу в DataGrid?
Как-то не очень этот способ... Другие есть?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как растянуть таблицу в DataGrid? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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