Hilfe mit Listbar.dll

MFC openGL

Erfahrenes Mitglied
Hi,

habe ein Problem mit der Listbar.
Ich hänge mal die DLL an, und würde euch bitten das ihr die eben in ein neues Form einbindet, und mal ein ICON oder eine BMP vor ein Item setzt, bei mir kommt dann ein Referenze -> null Error. Würde gerne wissen ob ich da was falsch gemacht habe, oder es ein Problem mit der DLL ist.


Danke schonmal fürs testen !

Gruss

MFC OpenGL



Hier mein Code :
Code:
lb.SmallImageList.Images.Add(Image.FromFile(@"testlogo.bmp"));
 
ListBarItem lbi1 = new ListBarItem("icontest", 0, "Itemtest");
 
lb.Groups[2].Items.Add(lbi1);

Fehler :

Eine nicht behandelte Ausnahme des Typs 'System.NullReferenceException' ist in listbartest.exe aufgetreten.
Zusätzliche Informationen: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
 

Anhänge

Zuletzt bearbeitet:
Eine Exception sagt Dir nicht nur was passiert ist.
Sie sagt Dir auch in welcher Zeile die Ausnahme geworfen wurde.
Hast Dir mal die InnerException angeschaut?
Code:
Image.FromFile(@"testlogo.bmp")
Was'n das? Keinen Rootpfad anzugeben kann tödlich sein. ;)
Hab jetzt leider keine Zeit um das zu testen. Existiert denn Groups[2]?
Evtl greifst auf ein nicht initialisiertes Feld zu.

MfG, cosmo
 
Jo, existiert alles. Und in meinem Code steht auch der Rootpfad, nur habe ich den hier rausgenommen, weil ich meine Verzeichnisstruktur ja nicht umbedingt jedem Hacker direkt im Forum mitteilen muss ;)

Das Problem scheint eher bei dem

lb.SmallImageList.Images.Add(...)

zu liegen. Wenn ich dem etwas übergebe, dann ist Schluss mit lustig. Das tolle ist, das es zu der DLL keine anständige Doku gibt.




EDIT : habe die Doku auch mal hochgeladen...
 
Zuletzt bearbeitet:
Code:
ImageList il = new ImageList();
 
il.Images.Add(Image.FromFile(@"testlogo.bmp"));
 
lb.SmallImageList = il;

Das geht zwar jetzt Fehler/Absturzfrei zu kompilieren, aber anzeigen tut er das Image immer noch nicht ;(

Trotzdem schonmal danke für den Tipp mit dem ImageList zuweisen, denn das stand nicht in der Doku...

Gruss

MFC OpenGL
 
Zuletzt bearbeitet:
MFC openGL hat gesagt.:
Trotzdem schonmal danke für den Tipp mit dem ImageList zuweisen, denn das stand nicht in der Doku...

Ist aber bei so ziemlich jeden Control so? Also auch bei denen in der .net Class Lib, ListView zum Beispiel.

Weise der Eigenschaft LargeImageList die selbe ImageList zu, dann sollts angezeigt werden. Finde gerade den Sinn von 2 ImageListen bei diesem Control nicht, es scheint nämlich keine Möglichkeit zu geben zwischen den beiden Listen umzuschalten. Zumindest hab ich noch keine gefunden, beziehungsweise weiss nicht wann das Control die kleinen Bilder benutzt.
 
Ja, man sollte einmal vor dem jeweiligen Item ein small ICON haben können, oder/und über dem Item ein large ICON...

Aber solange der das bei mir nicht anzeigt, brauch ich mir noch keine gedanken über das umschalten zu machen ;) (Wenn das jemand findet, wäre über ne Lösung nicht verärgert *g*)

Bei den .NET Komponenten hätte ich dem auch die ImageList direkt übergeben, aber wenn das dort in der Doku nicht steht, dann dachte ich mal wird das anders gemacht worden sein.
 
Könnt euch das suchen sparen, glaube ich habs gleich...

Liegt an der LargeImageList und am IconIndex

Lösung :

Code:
ImageList il = new ImageList();

il.Images.Add(Image.FromFile(@"testlogo.bmp"));

il.Images.Add(Image.FromFile(@"search.ico"));

lb.SmallImageList = il;

lb.LargeImageList = il;

ListBarItem lbi1 = new ListBarItem("icontest", 1, "Itemtest");

lb.Groups.Add("TEST");

lb.Groups.Add("HAHA");

lb.Groups[1].Items.Add("TEST1");

lb.Groups[1].Items.Add("TEST2");

Font f = new Font("arial", 14, FontStyle.Bold);

lb.Groups[1].SetButtonHeight(f);

lb.Groups[0].BackColor = Color.Red;

lb.Groups[1].Items[1].ForeColor = Color.SpringGreen;

lb.Groups[1].Items[0].ForeColor = Color.Pink;

lb.Groups.Add("open1");

lb.Groups[2].Items.Add("open1");

lb.Groups[2].Items.Add(lbi1);

Nicht wundern wegen der Namen, war alles nur zum testen ;)

Thx für die Hilfen

Gruss

MFC OpenGL
 
Zurück