vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
DataGridView:FillWeight-Überlauf beim Binden 
Autor: Manfred X
Datum: 09.07.08 14:43

Hallo!



Im DatagridView-Steuerelement darf die Summe der FillWeight-Werte der
Spalten den Wert 65535 nicht überschreiten.
Der Standardwert dieser Eigenschaft beträgt 100 (für jede einzelne Spalte).

Beim Binden einer Datasource (z.B. DataTable), die mehr als 655 Spalten
umfasst, kommt es deshalb zu einem Überlauf und einer entsprechenden
Ausnahme.

Gibt es eine Einstellung, die den Standardwert der FillWeight-Eigenschaft
überschreiben kann und somit den Überlauf beim Binden verhindert?

Das Setzen der AutoSizeColumnsMode-Eigenschaft oder der AutoResizeColumns-
Eigenschaft des Steuerelements vor dem Binden hilft anscheinend auch nicht weiter.

(Beim ungebundenen Arbeiten tritt das Problem nicht auf, weil man die
FillWeight-Eigenschaft beim manuellen Erstellen der Spalten auf einen
niedrigeren Wert als 100 setzen kann.)


Der einzige Weg, der mir eingefallen ist, besteht in der Verarbeitung des
ColumnAdded-Ereignisses, etwa so:


    Private Sub dgv_ColumnAdded(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.DataGridViewColumnEventArgs) _
    Handles dgv.ColumnAdded
 
        Static anz655, anz1150 As Boolean
 
        dgv = e.Column.DataGridView
        Dim c As Integer = dgv.Columns.Count
        If c < 655 Then Exit Sub
        If anz655 And c < 1150 Then Exit Sub
        If anz1150 Then Exit Sub
 
        Dim st, en As Integer
        en = dgv.Columns.Count - 1
        If anz655 Then st = 655
 
        For i As Integer = st To en
            dgv.Columns(i).FillWeight = 10
        Next i
 
        If Not anz655 Then
             anz655 = True 
        Else 
             anz1150 = True
	  end if
    End Sub
Das ist aber relativ ineffizient.

Kennt jemand einen eleganteren Weg?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DataGridView:FillWeight-Überlauf beim Binden5.368Manfred X09.07.08 14:43
Re: DataGridView:FillWeight-Überlauf beim Binden1.752Melkor09.07.08 15:00
Re: DataGridView:FillWeight-Überlauf beim Binden1.771Manfred X09.07.08 15:03
Re: DataGridView:FillWeight-Überlauf beim Binden1.705Melkor09.07.08 15:17
Re: DataGridView:FillWeight-Überlauf beim Binden1.895Manfred X09.07.08 16:47

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel