Machen UserControl selbst entfernen
Tut niemanden sehen, nichts falsch mit diesem:
this.Controls.Remove(this);
this
ist eine Klasse, erstreckt sich die Kontrolle durch die Nutzer. Wenn ich Schritt für Schritt durch diesen code-Abschnitt, der wie es aussieht ist alles in Ordnung, aber nichts geschieht, um die form. Ich würde erwarten, dass die Kontrolle gegangen zu sein.
InformationsquelleAutor Brian Sweeney | 2009-03-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie bereits erwähnt, entfernen Sie das Steuerelement aus sich selbst...das ist wahrscheinlich nicht das, was Sie wollen. Ich nehme an, Sie wollen entfernen Sie das Steuerelement aus, es ist Eltern - so möchten Sie wahrscheinlich
this.Parent.Controls.Remove(this);
.Zum Glück, da Sie nicht erwähnen-Plattform, der code ist der gleiche für WebForms oder WinForms.
InformationsquelleAutor Mark Brackett
Nichts geschieht, weil es nicht zu finden "dies" in der controls-Auflistung des 'dies'
Wenn Ihr Geltungsbereich liegt innerhalb des Steuerelements selbst, würden Sie wollen, zu tun
aber es hängt alles davon ab, welche Art der Kontrolle und in welche Art von container. aber die oben sollte in den meisten Fällen funktionieren.
EDIT:
Wenn Sie wissen, dass Ihr die Kontrolle gehört zu einer form, können Sie das folgende tun, oder ersetzen Sie Bilden mit den bekannten container-Typ (z.B. ein panel)
InformationsquelleAutor Neil N
Anderen Antworten sind richtig, darauf hinzuweisen, dass Sie nicht mit der richtigen Sammlung.
Jedoch werde ich darauf hinweisen, dass eine Steuerung, die entfernt sich von der Seite nicht, was ich denken würde, "erwartete Verhalten" von jedem asp.net Kontrolle. Überschreiben der
Render
- Methode (oder die Einstellung derVisible
Eigenschaftfalse
) würde das gleiche Ergebnis mit viel weniger Möglichkeiten, sich zu verwirren, wer wird die Aufrechterhaltung, dass der code in der Zukunft.InformationsquelleAutor Ken Browning
diese.Steuerung ist die Sammlung von vorhandenen Steuerelemente in Ihrem usercontrol. "dies" würde nicht existieren innerhalb dieser Sammlung, als "dieses" ist das übergeordnete Element.
Ich denke, Sie wollen finden das form-Objekt, und tun Sie myForm.Controls.Entfernen(dieses).
InformationsquelleAutor womp