Noch ein Tipp:
Versuch die COM- Komponente möglichst als TLB-Datei zu exportieren und über TLBImp in VS zu imporiteren , dann hast du den Vorteil das du deine Anwendung auf jedem Rechner kompilieren kannst, ohne das die COM Komponente installiert sein muss.
Genau das war mein Problem. Habe das Problem jetzt gelöst, in dem ich die Daten vorher nochmal in eine neue Liste übertrag und diese dann komplett ans DGV hänge.
So klappt es. Ist zwar performancemäßig nicht so toll, aber erstmal ein Anfang
Gruß
Siedlerchr
Was denn nun, Virtual mode oder DataSource, beides macht keinen sinn.
o.O - Hm, dann muss ich mich doch nochmal genauer einlesen. Ich hatte das bisher so verstanden, dass das Virtual Mode nur dann funktioniert, wenn ich auch ne DataSource habe und meine Items DataBound sind
Hallo zusammen,
ich habe ne SortableBindingList an ein DGV gehängt. Das funktioniert auch soweit alles.
Das DGV ist im Virtual Mode und da kriege ich beim sortieren - teilweise- Fehlermeldungen:
Fehlermeldung:
Standard-Fehlerdialogfeld für DataGridView
DataGridView-Ausnahme:
System.IndexOutOfRangeException: Der Index 6 hat keinen Wert.bei System.Windows.Forms.CurrencyManager.get_Item(Int32 index)
bei System.Windows.Forms.DataGridView.DataGridViewDataConnection.GetError(Int32 boundColumnIndex, Int32 columnIndex, Int32 rowIndex
Behandeln Sie das DataError-Ereignis, um dieses Standarddialogfeld zu ersetzen.
Das eiinzige was mir zu diesem Fehler einfällt, ist das das für jedes Element im DGV/Liste kommt, der IndexWert entspricht der Row.
Was vielleicht noch interessant ist: Die Liste die als DataSource am DGV hängt wird von einem Thread in 1000 Schritten befüllt und nach jedem Schritt wird die DataSource wieder auf die Liste gesetzt.
Hier noch mein CellValueNeeded Event:
private void dgvDeleteRuns_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
{
e.Value = allRuns[e.RowIndex];
}
Wenn ich die Liste z.B: per Where einschränke und das Ergebnis als neue Liste ans DGV hänge (auch eine SortableBindingList), dann funktioniert das Sortieren einwandfrei....
Ich habe auch schon probiert. die LIste ans DGV als DataSource zu setzen, wenn alle Daten geladen sind. Aber da geht das sortieren ebenfalls nicht.
Hat jemand ne Idee warum das nur bei alllen nicht geht? Ich hab mit dem VirtaulMode noch nicht so viel Erfahrung gesammelt.
Hallo zusammen,
kann man die Reihenfolge der Properties zur Laufzeit festlegen. Ich habe eine Klasse die von einem Interface erbt. Egal wie ich die Properties jetzt in die Klasse einfüge, die Properties aus dem Interface sollen als erstes kommen und die Anordung soll auch gleich sein.
BNsp: Reihenfolge aus dem Interface
public interface IRunInformation
{
Guid RunId { get; set; }
decimal Count { get; set; }
}
Klasse
public class CustomerRunInfo: IRunInformation
{
public string Name {get;set;}
public decimal Count { get; set; }
public Guid RunId { get; set; }
}
Wenn ich jetzt eine Liste vom Typ des Interfaces erstelle habe ich ja meien gewünschte Reihenfolge, wenn ich jetzt allerdings eine Liste vom Typ der Klasse Erstelle habe ich die Reihenfolge der Klasse, die anders ist als die des Interfaces.
Kann man sagen: Die Properties die vom Interface kommen sollen a) als erstes und b) in der Reihenfolge wie sie im Interface definiert sind?
Hintegrund ist das ich die beiden Listen an ein DGV mit DataSource hänge -> Die Spalten werden da ja automatisch erzeugt. Oder gibt es hier vielleicht ne Möglichkeit die Reihenfolge zu beinflussen?
Hallo,
ich kanns leider gerade nich testen, erst morgen wieder, aber ich meine das hängt mit der Eigenschaft AuoSize ( DataGridViewAutoSizeColumnMode) zusammen.
Wenn ich das auf MSDN richtig gelesen habe ist das Resizen bei dem Modus "AllCells" deaktiviert.
Ich verwende eigentlich immer Fill und habe damit auch bei DataBinding Geschichten bisher noch keine Probleme mit dem Resizen gehabt.
Nähere Infos gibt es hier:
MSDN: DataGridViewAutoSizeColumnMode-Enumeration
Ich würds ansonsten nochmal morgen früh testen, ansonsten einfach mal mit der Eigenschaft rumspieln. Wie gesagt, bei Fill hatte ich eig noch nie Probleme.
Leider erscheint im Datagridview kein Pfeil um die Spaltenbreite von Hand anzupassen.
Für die Spaltenbreite gibt es keinen Pfeil, du klickst entweder Doppelt auf eine Spalte und der nimmt automatisch die Spaltenbreite oder du klickst zwischen zwei Spalten und kannst dann mit gedrückter
Maus die Spaltenbreite ändern.
Nicht verwechseln mit dem "Sort Glyph", dem Pfeil für die sortieren wie hier (siehe Anhang)
Das Sortieren geht nur bei Datenquellen die die Sort-Methode überschreiben, nähere Infos dazu gibt es hier:
MSDN: ColumnSortMode
Hallo zusammen,
ich bin auf der Suche nach mehren Tutorials/Bücchern etc in denen das Erstellen von Extensions für Visual Studio 2010 erklärt wird.
Ich habe bereits den Walkthrough von MSDN gemacht und mich dort ein wenig eingelesen, muss aber sagen, dass das jetzt nicht so hilfreich war...
Die API-Referenz ist leider auch ziemlich dürftig was das angeht...
Kennt da jemand noch Tutorials oder ggf Bücher oder hat Tipps/Empfehlen für das Erstellen von Visual Studio Extensions?
Möglichst wo das ganze mal irgendwie zusammenhängend beschrieben...
Ja das geht, in dem du den Benutzer einfach als Parameter und schickst ein Prepared Statement ab.
Vielleicht mal folgendes als Denkanstoß:
string qry = "select Name, Adresse from Mitfahrzentrale.Benutzer where Benutzer.Name = ?"
OdbcCommand cmd = new OdbcCommand(qry, conn);
cmd.Parameters.AddWithValue("user",Environment.UserName)
var reader = reader = cmd.ExecuteReader())
while (reader.Read())
{
//Ergebnismenge durchlaufen und die Werte der Spalten abrufen...
}
Entweder baust du das ganze mit dem DataTable/DataSet oder du erstellt dir einfach eine Liste mit den Objekten und hängst die an das DGV.
Dazu gibt es hier jede Menge Infos.
Ich habe das in dem o.g. Beispiel mal über eine einfach ODBC-Abfrage gemacht, beim SQL Server wirst du vermutlich OleDbCommand oder ähnliches verwenden
Nähere Infos: MSDN: DBCommand
Hallo,
auf Stackoverflow gibt es eine ähnliche Frage, in der auch Beispiele gepostet worden sind.
Vielleicht hiflt dir das ja weiter:
Stackoverflow - How do you kill a process for a particular user in .NET (C#)?