Ich habe ein Problem, bei dem ihr mir hoffentlich helfen könnt:
Ich verwalte ein virtuelles ListCtrl mit den drei Spalten :
- Speicherstelle
- Inhalt
- Kommentar
Nun überlade ich die Methode OnGetItemText() um den Inhalt der einzelnen Zellen dynamisch einzufügen. Um dieses differenziert für die einzelnen Spalten zu tun, bekomme ich bei der überladenen Methode als Übergabeparameter einmal die Spalte(col) und den Item-Index(item) übergeben.
In relation zu den einzelnen Spalten möchte ich die Zellen füllen:
Code: Alles auswählen
if col == 0:
return "Speicherstelle"
if col == 1:
return "Inhalt"
if col == 2:
return "Kommentar"
Nun tritt aber das Problem auf, dass in der Spalte "Inhalt" einfach gar nichts steht, in den anderen beiden steht wie gewollt "Speicherstelle" und "Kommentar". Und es tritt wirklich der Fall ein, dass als col auch die 1 übergeben wird, habe ich nachgeprüft.
Nun habe ich mir mal ganz seltsam gedacht, versuchste das ganze halt mal "ohne" die Spalte mit dem Index 1: Habe also insgesamt vier Spalten angelegt, einfach die mit dem Index 1 im Header leer gelassen und ihre breite auf 0 gesetzt. Und schwupp-di-wupp, da ich die Spalte "Inhalt" auf den Index 2 und die Spalte "Kommentar" auf den Index 3 gesetzt habe, wird nun auch die Spalt "Inhalt" wie gewollt gefüllt.
Aber das kann es doch nicht sein, oder? Das muss doch einen Grund haben, dieses komische verhalten, ich kann mir das kaum erklären, und außerdem ist es, wie es jetzt gerade ist, ja wohl kaum ein Dauerzustand...
Naja, aber falls es doch dieser Zustand sein muss (was ich nciht wirklich hoffe), dann würde ich gerne erfahren, wie man den Benutzer daran hindern kann, die Leerspalte nicht in die Breite zu ziehen, damit dieser diese nciht zu Gesicht bekommt.
Ich bitte dringlichst um eure Hilfe und Eingebungen,
Gruß blauer Fasan