Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Subitems aus ListView auslesen: Runtime-Error

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.11.2006, 11:52 Uhr
www.pat



Hi!

Ich habe eine ListView auf Details eingestellt. Jedes Item hat mehrere Subitems.
Das auslesen von Item[0] klappt einwandfrei. Item[1] erzeugt einen Runtime-Error...



C++:
// Dieser Code funktioniert:

this->textBox1->Text = this->listView1->SelectedItems->Item[0]->Text;




C++:
// Kompilieren geht, erzeugt jedoch einen Fehler wenn ich hier vorbei komm.

Form->textBox1->Text = this->listView1->SelectedItems->Item[1]->Text;




Zitat von Compiler:

Eine nicht behandelte Ausnahme des Typs 'System.ArgumentOutOfRangeException' ist in system.windows.forms.dll aufgetreten.

Zusätzliche Informationen: Das angegebene Argument liegt außerhalb des gültigen Wertebereichs.



Weis jemand wo hier der Fehler liegt?

Danke,

pAT!
 
Profil || www.pat&">Private Message || www.pat&searchfor=author&startsearch=1&">Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.11.2006, 12:05 Uhr
ao

(Operator)


Es scheint keinen Item[1] zu geben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.11.2006, 13:21 Uhr
www.pat



Danke für die schnelle Antwort!

Merkwürdig, dachte die Zahl in der eckigen Klammer bezieht sich auf die Subitems...

Naja, ich hab jetzt etwas, dass funktioniert:


C++:
String * MyString;
MyString = this->listView1->SelectedItems->Item[0]->SubItems->get_Item(1)->ToString();



Nachteil: in MyString steht dann :


C++:
ListViewSubItem: {03453}





Den Wert in der Klammer muss man halt herausfiltern.:


C++:
char* Misc::Filter_word(char* sentence, char Start_char, char Stop_char)
{
char* word = new char[1024];
unsigned int sentence_i=0;
unsigned int word_i=0;
int spaces = 1;

for (sentence_i; Start_char!=sentence[sentence_i]; sentence_i++)
{    
    if (sentence_i==3000) return 0;
}
sentence_i++;  // Damit die erste Klammer überschrieben wird

for (sentence_i; (sentence[sentence_i]!=Stop_char && sentence[sentence_i]!=0x00); sentence_i++)
{
    word[word_i]=sentence[sentence_i];
    word_i++;
    if (word_i==1024) return 0;
}
word[word_i-1]=0x00; // die -1 um die zweite Klammer zu überschreiben.
return word;
}



Falls jemand eine elegantere Lösung kennt, nur her damit ^^

cu!

pAT

Dieser Post wurde am 08.11.2006 um 13:22 Uhr von www.pat editiert.
 
Profil || www.pat&">Private Message || www.pat&searchfor=author&startsearch=1&">Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: