Announcement

Collapse
No announcement yet.

SelectedIxedChanged - komisches Verhalten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SelectedIxedChanged - komisches Verhalten

    Hi,

    ich habe ein ListViewItem das sich komisch verhält. Ich habe folgendes Event, für den Fall das jemand draufklickt *g*

    lv1.SelectedIndexChanged += new System.EventHandler(lv1_SelectedIndexChanged);

    und die Methode

    private void lv1_SelectedIndexChanged(object sender, EventArgs e)
    {
    try
    {
    MessageBox.Show(lv1.SelectedItems[0].Text);
    }
    catch (Exception ex)
    {

    }
    }

    Ich habe 2 Probleme:
    1. Ohne den catch block gibt es eine Exception: InvalidArgument=Value mit dem Wert 0 ist für index ungültig. Parametername: index

    2. Mit und ohne dem catch Block bekomm ich den Wert 2 mal zurück. D.h. ich bekomme immer 2 mal hintereinander eine MessageBox...

    Jemand ne Idee?

  • #2
    Hallo,

    >..bekomm ich den Wert 2 mal zurück...

    dann wird <b>+=</b> eine 2. Ereignisbehandlungsmethode aktiviert haben :-)

    &gt; ... ohne den catch block ...

    Wenn das ListView im Detail-Modus ist, passt der Indexwert 0 nur für den Fall, dass die 1. Spalte angeklickt wurde. Das folgende Bespiel demonstriert dies:

    <div style="font-family: Courier New; font-size: 10pt; color: black; background: white; border-top: windowtext 1pt solid; padding-top: 0pt; border-left: windowtext 1pt solid; padding-left: 0pt; border-right: windowtext 1pt solid; padding-right: 0pt; border-bottom: windowtext 1pt solid; padding-bottom: 0pt;"><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">public</span> Form1()</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; InitializeComponent();</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: green;">//</span></p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; listView1.View = <span style="color: teal;">View</span>.Details;</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; listView1.BeginUpdate();</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: teal;">ListViewItem</span> aLVI;</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">for</span> (<span style="color: blue;">int</span> i = 1; i &lt;= 10; i++) </p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; aLVI = <span style="color: blue;">new</span> <span style="color: teal;">ListViewItem</span>(<span style="color: maroon;">"Eintrag "</span> + i.ToString());</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; aLVI.SubItems.Add(<span style="color: maroon;">"Spalte 2"</span>);</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; aLVI.SubItems.Add(<span style="color: maroon;">"Spalte 3"</span>);</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; listView1.Items.Add(aLVI);</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; listView1.Columns.Add(<span style="color: maroon;">"Überschrift 1"</span>, 100, <span style="color: teal;">HorizontalAlignment</span>.Center);</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; listView1.Columns.Add(<span style="color: maroon;">"Überschrift 2"</span>, 100, <span style="color: teal;">HorizontalAlignment</span>.Left);</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; listView1.Columns.Add(<span style="color: maroon;">"Überschrift 3"</span>, 100, <span style="color: teal;">HorizontalAlignment</span>.Left);</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; listView1.EndUpdate();</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p><p style="margin: 0px;">&nbsp;</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">private</span> <span style="color: blue;">void</span> listView1_SelectedIndexChanged(<span style="color: blue;">object</span> sender, <span style="color: teal;">EventArgs</span> e)</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">if</span> (listView1.SelectedItems.Count &gt; 0) </p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: teal;">MessageBox</span>.Show(listView1.SelectedItems[0].Text); </p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</p></div&gt

    Comment

    Working...
    X