Entwickler-Ecke
Sonstiges (.NET) - speichern in der listbox
JoKaBo - Do 06.01.11 20:36
Titel: speichern in der listbox
Hallo,
Ich Mochte Etwas in einer listbox speicher wen ich auf einen Button neuer eintrag gehe Offnet sich ein fenster mit einer TexBox und einer richttextBox ich habe es auch schon hinbekommen die textbox in der listbox anzuzeigen und zu Öffnen Aber Ich Krige s nicht hinn das sich auch die RichtTextBox Speichert.
einmal Form1 Mit der ListBox
und Form 2 mit der TextBox Und richtTextBox
Mit Form 1 Die Form 2 Öffnen
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| private void button2_Click(object sender, EventArgs e) { eintrag form = new eintrag();
DialogResult dr;
dr = form.ShowDialog(this);
if (dr == DialogResult.OK) { if (form.textBox1.Text.Length > 0) this.listBox1.Items.Add(form.textBox1.Text); |
Auf der Form 2 Der Ok Button:
C#-Quelltext
1: 2: 3:
| private void button1_Click(object sender, EventArgs e) this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); |
Der inhalt der TextBox soll dan Als name auf der listBox sein und die richttextBox soll einfach mit Gespeichert werden, soll aber nicht in der listBox sichtbar sein.
Dan der Button Auf der Form1 Der den inhalt wider anzeigen soll:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| private void button3_Click(object sender, EventArgs e) { eintrag form = new eintrag(); if (this.listBox1.SelectedItems.Count > 0) {
form.textBox1.Text = this.listBox1.SelectedItems[0].ToString(); form.ShowDialog(this); } |
und das speichern der listBox
Habe ich Schon Hinbekommen
Ich weis nicht was daran falsch ist
und bitte In C#
Das were echt Klasse wen ihr mir helfen Könntet
L.G.
JoKaBo
Moderiert von
Christian S.: Quote- durch C#-Tags ersetzt
Namenlosnameless - Fr 07.01.11 00:05
hab ich mich verlesen oder hast du: eine Form1 mit textbox und ListBox und eine Form2 mit einem OK-Button?
jaenicke - Fr 07.01.11 08:39
JoKaBo hat folgendes geschrieben : |
| Ich weis nicht was daran falsch ist |
Ich denke das Speichern der TextBox klappt bereits? Und zu etwas anderem (wie der richtTextBox) hast du ja keinen Code gepostet.
Ich verstehe gar nicht was jetzt eigentlich das Problem ist. Du postest Code zu einem Problem, das aber ja offenbar gelöst ist. Fragst warum etwas anderes nicht geht, postest aber weder Code dazu noch was dabei das Problem ist. :roll:
Auf jeden Fall solltest du dir erst einmal eine Variable bzw. ein Feld deklarieren, in dem du die Daten aus dem zweiten Formular speicherst. Die kannst du natürlich dann zusätzlich in der Listbox anzeigen, aber die Listbox als Datenspeicher zu missbrauchen ist Blödsinn.
Auch der direkte Zugriff auf die Komponenten im zweiten Formular ist keine so gute Idee. Das geht über Eigenschaften viel besser:
http://msdn.microsoft.com/de-de/library/x9fsa0sw(v=vs.80).aspx
JoKaBo - Fr 07.01.11 10:45
Also eigentlich sollte das problem da stehen habe es dann vergessen
Also das problem ist ich weis nicht wie ich das mit der richttextbox mache das sie sie sich im Hintergrund speichert aber nich in der Listbox zu sehen ist.
jaenicke - Fr 07.01.11 11:46
Wie gesagt, du deklarierst dir eine Variable, z.B. als String, und packst den Inhalt da rein. :nixweiss:
JoKaBo - Fr 07.01.11 13:24
hallo,
ich habe es fast richtig inbekommen[quote].
er zeigt die textBox 1 In der listBox1 an und die txtBox 2 wird im hintergrund gepeichert. aber wen ich jezt auf neuer eintrag gehe steht der text immernoch in der textBox2 Habe es auch schon da mit Probirt:
| Zitat: |
| this.textBox2.Text.Remove(this.textBox2.SelectedText[0]); |
Aber Geht nicht dann weist er mich immer zu disem code und makirt ihn gelb
jaenicke - Fr 07.01.11 13:45
JoKaBo hat folgendes geschrieben : |
| Aber Geht nicht dann weist er mich immer zu disem code und makirt ihn gelb |
Wie ich schon im anderen Thread sagte: Was für eine Meldung kommt und was willst du mit dem Code denn erreichen? :roll:
JoKaBo - Fr 07.01.11 13:55
1.
in meinem programm wenn ich dort auf neuen eintrag gehe soll sich einen Form mit 2 TextBoxen Öffnen die Obere soll in der list Box Auf der aneren for erscheinen
Fertig
2. soll die textBox2 den inhalt im hintegrund speichern
Fertig
3.wenn ich auf neuen eintrag gehe soll das Formular lehr sein aber jezt stht immer noch der inhalt der textBox2 da.
und es steht kein feler da
eswird nur dise zeile gelb makirt
| Zitat: |
| this.textBox2.Text.Remove(this.textBox2.SelectedText[0]); |
Yogu - Fr 07.01.11 14:10
JoKaBo hat folgendes geschrieben : |
3.wenn ich auf neuen eintrag gehe soll das Formular lehr sein aber jezt stht immer noch der inhalt der textBox2 da.
und es steht kein feler da
eswird nur dise zeile gelb makirt
C#-Quelltext 1:
| this.textBox2.Text.Remove(this.textBox2.SelectedText[0]); | |
Vielleicht ist deine Installation von Visual Studio ja kaputt? Bei mir sieht das in etwa so aus:
Wenn du dir den Code anschaust, siehst du auch, warum es dort knallt. Klammern werden zuerst ausgewertet, also schauen wir dort rein: Du greifst auf die Eigenschaft
SelectedText der TextBox zu, die, wie der Name schon sagt, den Text enthält, den der Benutzer markiert hat. Wahrscheinlich hat er nichts markiert, also ist dieser String leer. Und nun greifst du mit
[0] auf dessen erstes Element zu - und da es kein erstes Element gibt, siehst du diese Fehlermeldung.
Dein Ansatz ist übrigens nicht der richtige. Setze die Einfügemarke auf das
Remove und drücke F12, um die Beschreibung dieser Methode zu erhalten (du musst dann auf die drei Punkte am Anfang der markierten Zeile doppelklicken). Dort steht:
| string.Remove(int) hat folgendes geschrieben: |
// Zusammenfassung:
// Löscht alle Zeichen aus dieser Zeichenfolge, beginnend an einer angegebenen
// Position bis zur letzten Position.
//
// Parameter:
// startIndex:
// Die nullbasierte Position, ab der Zeichen gelöscht werden sollen.
//
// Rückgabewerte:
// Eine neue Zeichenfolge, die dieser Zeichenfolge ohne die entfernten Zeichen
// entspricht.
//
// Ausnahmen:
// System.ArgumentOutOfRangeException:
// startIndex ist kleiner als 0 (null).- oder - startIndex gibt eine Position
// an, die sich nicht innerhalb dieser Zeichenfolge befindet. |
Erstens erwartet die Methode als Parameter die Position im String, an der angefangen werden soll, zu löschen, und du übergibst den Zeichencode des ersten Zeichens des Strings. Zweitens gibt die Methode den neuen String als Rückgabewert zurück, und ändert nicht den String selbst.
Lange Rede, kurzer Sinn: So geht's nicht. Wie es geht, hat dir
Namenlosnameless in deinem anderen Thread übrigens schon verraten.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!