das führt so alles nicht zum Ziel.
Welches Problem tritt denn wann auf?
Hast Du überprüft ob in der DataSource für die ComboBoxColumn alle Werte enthalten sind als Menge im DGV auftreten?
eine DataGridViewComboBoxColumn kann auch einer DGV mit einer DataTable als DataSource zugeordnet werden. Dabei wird die Column, die als Combobox angezeigt und genutzt werden soll, durch eine zur Laufzeit erstelle DataGridViewComboBoxColumn ersetzt:
- DataTable der DGV zuweisen
- neue DataGridViewComboBoxColumn erstellen
- DataPropertyName erhält die Spalte aus der DataSource des DGV
- DataSource = DataSource der Combobox-Auswahl
- DisplayMember = im DataGridViewComboBoxColumn anzuzeigender Wert
- ValueMember = im DataSource der DGV zu speichender Wert der Spalte
- alte Coumn entfernen
- über Columns.Insert die neue Columns an der Stelle der alten einfügen.
gibt es einen speziellen Grund dass die dgv_lieferpositionen nicht mit eine DataTable als DataSource versehen wird?
Ich würde versuchen hier mit einem SQL (stored proceudre / function) die DGV zu befüllen. Einen Formatfehler würde hier auch schneller erkannt werden.
Viele Grüße,
telfa
EDIT: Hallo noch einmal.
Der Fehler deutet darauf hin dass in einer Zeile ein Wert steht der nicht im Source der DataGridViewCombobBox-Cell enthalten ist.
wenn du das KeyDown-Event über den VisualStudio-Designer abonnierst wird der Eintrag automatisch in der entsprechenden *.Designer.cs eingetragen.
Ansonsten kannst du diese Zeile auch im Creator der entsprechenden Class unterbringen.
In beiden Fällen ist gewährleistet das die Zeile auch verarbeitet wird.
neben den beschriebenen Quellen kannst du auch nach WebCast schauen.
In WebCast wird die Handhabung einzelner Themen in praktischen Beispielen dargestellt. Dies kann als Einstieg in einzelne Bereich durchaus hilfreich sein.
Aber in jedem Fall sollte ein geeignetes Buch die Grundlage sein.
Hallo Edzio,
wie ermittelst du die betroffene Zelle?
Die DataGridViewCellMouseEventArgs (e) liefern dir die betroffene Zeile und betroffene Spalte mit RowIndex und ColumnIndex.
im Grunde gebe ich Khalid Recht. Man sollte sich mehr und tiefer mit den Dingen beschäftigen, mit denen man täglich arbeitet. In der Praxis ist das aber leider oft nur schwer bis gar nicht möglich. Weil einem schlicht die Zeit dazu fehlt. Leider.
zu Deinem vorigen Post habe ich eine Frage.
Ich baue in Anwendungen gerne ein Masterpanel auf, in das mehrere Panels mit unterschiedlichen Controls darin eingebunden wird.
Über Button wird festgelegt welches Control im Masterpanel gerade aktiv ist.
Auf diese Weise können durchaus bis zu zwanzig Panel mit jeweils bis zu 20-30 Controls im MasterPanel enthalten sein. Das macht in Summe schnell mehrere hundert Controls in der einen (einzigen) Form.
Wäre es eventuell sinnvoller statt mehrerer Panel in einem MasterPanel mehrere Forms in einer MDI-Form unterzubringen?
Gibt es hierzu Richtlinien?
eine Bezeichnung für solche Controls sind mir nicht bekannt.
Vermutlich wird es aber das einfachste sein du generierst dir ein UC, welches den vertikalen gelben Balken und ein Panel zur Aufnahme von Controls enthält.
Das heißt, den Panel brauchst du nicht zwingend.
innerhalb des Event wird da nichts zu finden sein. Das ausschlaggebende dafür ist ja außerhalb des Event. Schaue doch einmal welches Event du abonniert hast.
das DataGridView unterstützt die Event Cell(Doucble)Click und CellContent(Double)Click. In deinem Beispiel wird das Event CellDoubleClick genutzt, welches die gesamte Zelle unterstützt. Warum in deinem Fall es sich wie CellContentDoubleClick verhält ist mir nicht klar.
Gibt es noch weiteres relevanten Code, den wir hier nicht sehen bisher?
du solltest das NodeMouseCklick-Event verwenden und dann e.Node verwenden. Dann greifst du auf die Node zu, auf die geclickt wurde.
TreeView.SelectedNode ist nicht die angeclickte Node.
der Gedanke, vom klassischen PC auf ein Notebook umzusteigen, geistert mir auch schon eine Weile durch den Kopf. Was mir aber unklar ist, was muss gegeben sein um zwei größere Monitore am Notebook anzuschließen? (Habe ich da etwas nicht gelesen?)
fürchte da wirst du nicht um eine Schleife herumkommen.
Denkbar ist alle Ausprägungen zu sammeln und (eben in einer Schleife) jeweils über den DefaultView-Filter die Anzahl zu ermitteln.
Vielen Dank für Eure Antworten.
Die Frage von Abt, welche Art von einem WebService zum Zuge kommen soll, ist noch nicht einmal geklärt. Vermutlich wird es aber keine Webanwendung werden sondern eher eine WPF-Anwendung.
ein neues Projekt benötigt einen WebService, der deutlich umfangreicher wird.
Kann mir jemand einen Tipp zu einem Buch geben mit dem man tiefer in die Materie einsteigen kann?
ich denke das ist durch deinen Hinweis klarer geworden. Es waren Mails mit mehreren Adressaten und ich bin eben davon ausgegangen das in der InBox eines jeden Adressaten nicht eine eigene Mail sondern ein Verweis auf die Mail in einer übergeordneten InBox erhält.
Hallo Kalle_84,
warum willst du so vorgehen?
Kommen die Daten aus einer Datenbank-Tabelle?
Dann solltest du eher mit einem DataTable arbeiten.
Wenn du die Werte auch anpassen und speichern willst wäre ein DataAdapter interessant.
merke Dir doch zu Deiner Listen von Gruppen gleich das Item, in dem dieses vorhanden ist. Beispielsweise in einem Dictionary.
Dann kannst Du nicht nur prüfen ob vorhanden sondern auch ob in diesem Item angezeigt und die Anzeige entsprechend steuern.