vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.

Hinweis:
Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden!

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

Fragen zu Tipps & Tricks und Workshops im vb@rchiv
Tipp 2172: MultiColumnCombobox (datengebunden) 
Autor: csc101
 Tipp anzeigenDatum: 11.10.12 17:27

Hi

ich versuche mich grad am oberen Tipp, aber ich bekomme eine NullReferenceExeption und weiß nicht warum, so tief bin ich dann doch nicht drin.


System.NullReferenceException wurde nicht von Benutzercode behandelt.
Message="Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
Source="xTool"
StackTrace:
...
InnerException:


Private cbo As New MultiColumnComboBox.MultiColumnComboBox
 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
  System.EventArgs) Handles MyBase.Load
 Dim table As DataTable = GetTable()
 
        With cbo
            .DataSource = table
            .DisplayMember = "Drug"
            .ValueMember = "Dosage"
            '.NotShowingColumns = "Date"
            .BackFirstRowColor = Color.FloralWhite
            .BackSecondRowColor = Color.MistyRose
            .SelectedRowBackcolor = Color.LightCoral
            .SelectedRowBackcolor = Color.Brown
            .SelectedRowForecolor = Color.White
            .ItemHeight = 13
            .Location = New Point(79, 67)
            .Size = New Size(141, 20)
            '.Enabled = False
        End With
        Me.Controls.Add(cbo)
 End Sub
 
 
 Function GetTable() As DataTable
 
        Dim table As New DataTable
 
        table.Columns.Add("Dosage", GetType(Integer))
        table.Columns.Add("Drug", GetType(String))
        table.Columns.Add("Patient", GetType(String))
        table.Columns.Add("Date", GetType(DateTime))
 
        table.Rows.Add(25, "Indocin", "David", DateTime.Now)
        table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now)
        table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now)
        table.Rows.Add(21, "Combivent", "Janet", DateTime.Now)
        table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now)
        Return table
    End Function
Der Fehler tritt in der Zeile
Dim propertyDescriptorCollection As _
PropertyDescriptorCollection = DataManager.GetItemProperties()[/B]
auf.
 Private Sub InitializeColumns()
            If Me.DataSource Is Nothing Then Exit Sub
 
            Dim propertyDescriptorCollection As  _
              PropertyDescriptorCollection = DataManager.GetItemProperties()
 
            columnWidths = New Single(propertyDescriptorCollection.Count - 1) {}
            columnNames = New [String](propertyDescriptorCollection.Count - 1) _
              {}
 
            With propertyDescriptorCollection
                For colIndex As Integer = 0 To .Count - 1
                    Dim name As [String] = .Item(colIndex).Name
                    columnNames(colIndex) = name
                Next
            End With
        End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: MultiColumnCombobox (datengebunden) 
Autor: Manfred X
Datum: 11.10.12 19:20

Hallo!

Nach kurzer Durchsicht des Tipps würde ich vermuten, du mußt
die Zeile
.NotShowingColumns = New String() {"0"}
einfügen.

Unter "Option Strict On" sind noch einige typkonforme Konvertierungen im
Tipp-Code einzufügen.

Danach funktioniert Dein Datenbeispiel bei mir fehlerfrei.

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: MultiColumnCombobox (datengebunden) 
Autor: csc101
Datum: 12.10.12 08:14

ohh je, an den konvertierungen scheitere ich. allein .NotShowingColumns = New String() {"0"} hilft anscheinend nicht. kannst du mich bei den konvertierungen noch mal unterstützen?

mfg
csc101
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: MultiColumnCombobox (datengebunden) 
Autor: Manfred X
Datum: 12.10.12 22:18

Hallo!

Der Tipp-Code funktioniert auch, wenn Du ihn unverändert
in ein Klassenmodul kopierst und "Option Strict Off" eingestellt ist.

Du mußt aber in Deinem Code noch eine Anweisung verschieben.
(Der Datamanager des Control ist sonst noch nicht erstellt worden.)
        Dim table As DataTable = GetTable()
 
        Me.Controls.Add(mc) 'Hier muss die Zuweisung auf das Formular stehen
 
        With mc
            .DataSource = table
            .DisplayMember = "Drug"
            .ValueMember = "Dosage"
            .NotShowingColumns = New String() {"0"} 'Hier muss etwas stehen
            .BackFirstRowColor = Color.FloralWhite
            .BackSecondRowColor = Color.MistyRose
            .SelectedRowBackcolor = Color.LightCoral
            .SelectedRowBackcolor = Color.Brown
            .SelectedRowForecolor = Color.White
            .ItemHeight = 13
            .Location = New Point(79, 67)
            .Size = New Size(141, 20)
            .Enabled = True
        End With
MfG
Manfred

Beitrag wurde zuletzt am 12.10.12 um 22:24:21 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: MultiColumnCombobox (datengebunden) 
Autor: csc101
Datum: 15.10.12 13:25

ok, so klappts. Ohh man, kleine Ursache, große wirkung .... DANKE, VIELEN DANK!!!!!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um einen neuen Beitrag 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