Anfängerfragen zu Listview und anderes

26/09/2007 - 09:41 von Frank Heindörfer | Report spam
Hallo,

ich habe feststellen müssen, dass sich mein Programm nicht von einem
Netzlaufwerk starten làsst. Ich möchte nun diesen Fehler abfangen und
den Benutzer darüber informieren. Die in meiner "Main"-Methode
hinzugefügte try\catch Anweisung scheint aber nicht zu greifen. Das
Starten des Programms von einem Netzlaufwerk per Policy-Änderung am
lokalen Rechner zuzulassen, ist dabei nicht gefordert.

ListView:
1.) Das ListView (View:Details) von .Net scheint sich anders zu
verhalten wie das ListView von VB6. Wenn ein ListView 20 Zeilen anzeigt
und davon die ersten 5 Zeilen gefüllt sind und die 2. Zeile selektiert
ist und man klickt dann auf die 10. (leere) Zeile, dann verschwindet die
Selektierung der 2. Zeile. Das ListView von VB6 hat die Selektierung
beibehalten. Genau dieses Verhalten versuche ich zu erreichen. Wie mache
ich das? Gibt es dafür eine Eigenschaft?

2.) Wenn die Eigenschaft MultiSelect eines ListViews auf True steht,
kann man über "ListView.SelectedListViewItemCollection" sich die
selkierten Items zurückgeben lassen. Wie ermittle ich aber den zuletzt
selektierten?

Das wàrs erstmal.

Tschüss Frank
 

Lesen sie die antworten

#1 Thorsten Doerfler
26/09/2007 - 11:31 | Warnen spam
Frank Heindörfer schrieb:
ich habe feststellen müssen, dass sich mein Programm nicht von einem
Netzlaufwerk starten làsst. Ich möchte nun diesen Fehler abfangen und
den Benutzer darüber informieren. Die in meiner "Main"-Methode
hinzugefügte try\catch Anweisung scheint aber nicht zu greifen.



Deine Anwendung wird auch vom Framework daran gehindert überhaupt
ausgeführt zu werden. Zu dem Zeitpunkt wird keine Zeile Code Deiner
Anwendung ausgeführt.

1.) Das ListView (View:Details) von .Net scheint sich anders zu
verhalten wie das ListView von VB6.



Es ist auch die native ComCtl32.dll ListView und nicht die
eigenwillige Implementierung des VB Teams.

Wenn ein ListView 20 Zeilen anzeigt
und davon die ersten 5 Zeilen gefüllt sind und die 2. Zeile selektiert
ist und man klickt dann auf die 10. (leere) Zeile, dann verschwindet die
Selektierung der 2. Zeile. Das ListView von VB6 hat die Selektierung
beibehalten.



Und sich damit anders verhalten, als das native ListView. Für mich war
es mit ein Grund, das 6er ListView aus der Anwendung zu kippen. Das
.NET ListView verhàlt sich völlig korrekt.

Genau dieses Verhalten versuche ich zu erreichen. Wie mache
ich das?



private void listView1_MouseUp(object sender, MouseEventArgs e)
{

if (listView1.HitTest(e.Location).Item == null)
{
listView1.FocusedItem.Selected = true;
}
}

2.) Wenn die Eigenschaft MultiSelect eines ListViews auf True steht,
kann man über "ListView.SelectedListViewItemCollection" sich die
selkierten Items zurückgeben lassen. Wie ermittle ich aber den zuletzt
selektierten?



Siehe ListView.FocusedItem

Thorsten Dörfler
vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen