Teil eines Labels löschen

  • C#

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von RoulettePilot.

    Teil eines Labels löschen

    Heyho Community,

    und zwar habe ich vor das aus einem Label ein Teil der vorher in eienr Textbox geschrieben wurde rausgelöscht wird. Wer noch wissen will wozu das gut sein soll, bestimmte Personen sollen in einem Label ausgegeben werden, diese sollen aber halt später wieder einzelnd gelöscht werden können... bis jetzt habe ich das hier :

    VB.NET-Quellcode

    1. If Form1.Label1.Text.Contains(TextBox1.Text) Then
    2. end if


    danke schonmal im voraus :thumbup:
    ​If Form1.Label1.Text.Contains(TextBox1.Text)


    ... ist schon komplett falsch. Guggst Du: google.de/url?sa=t&rct=j&q=&es…oig&bvm=bv.64542518,d.bGQ
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ein Label dient ausschließlich zur Anzeige von Daten. Ein Label ist kein Datenspeicher. Halte Deine User oder was auch immer in einer Liste vor und lösche diese dann aus dieser.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    @RoulettePilot Wie SpaceyX schon sagte ist es unsauber (bzw. meiner Meinung nach auch nicht gut) sowas zu benutzen label1.Text.Replace(Textbox1.Text, "").Trim
    Ein Label dient ausschließlich zum Anzeigen. D.h. Label1.Text = String Hier nimmst du aber den Text aus einem Label.
    Im Zweifel arbeitet man mit einer Variable, die man verändert und setzt den Labeltext dann mit dieser Variable ;)
    unsauber?
    Label ist dazu da was anzuzeigen.
    Diese Anzeige kann sich im Verlaufe des Programmes ändern.. also ändert sich dann auch das Label.
    Ich mache doch nicht extra ne Variable, wenn ich diesen Text nie wieder brauche, außer dem einen Zweck... "anzuzeigen".
    "Text" enthält den Text den das Label anzeigen soll. Und den kann ich da rausholen oder neuen reinpacken, wann immer es Nottut. Sonst wäre es READONLY, wenn's verboten wäre.

    Aber vielleicht solltest du, ausser zu "sagen" das es anders (besser) geht, es auch machen und mal zeigen, wie es richtig gemacht wird.
    Ja, das ist unsauber. Um was zu ändern, machst Du eine Variable und weist das dann zu. Man muss GUI von Daten trennen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Trade schrieb:

    Ja, das ist unsauber. Um was zu ändern, machst Du eine Variable und weist das dann zu. Man muss GUI von Daten trennen.

    *g*
    ob ich erst den Label-Text in eine Variable packe, dort ändere, und dann wieder zurück packe,
    oder ob das System das für mich macht (nichts anderes passiert bei der Geschichte) bleibt sich gleich.
    Nö. Man muss GUI von Daten trennen, so gehört sich das nun mal. Bringt einem auch viele Vorteile, speziell bei WPF wird dies ziemlich stark ausgeprägt, siehe MVVM usw.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    anstatt zu sagen "man muss" und .. "schon komplett falsch" .. guggst du hier.. guggst du da... guggst du dort,
    wäre es erheblich hilfreicher, wenn du mit Gutem Beispiel vorangehst und auch mal eine "konforme" Lösung präsentierst.
    Dann wäre allen geholfen.

    im Übrigen, bin ich sicher nicht der Einzige Mensch der seine kleinen Labels dazu vergewaltigt auch mal heimlich was anderes anzuzeigen :P
    Ist vielleicht wie sooft im Leben... Theorie und Praxis...
    (deswegen ist bei mir aber noch kein Programm abgestürzt *g*)

    RoulettePilot schrieb:

    eine "konforme" Lösung präsentierst.

    Nun, das bringt dem TE gar nichts, außer, dass er den Kontext nicht versteht und warum man es machen muss, sodass er schließlich beim Alten bleibt, wenn ich ihm jetzt sage, dass eine Form ne Klasse ist und eine Instanz braucht, sowie man sowas übergeben muss. Tutorials erklären alles und sind dazu da, verlinkt zu werden.

    Im Übrigen, nimm mir das jetzt nicht übel oder so, aber es nervt ein wenig, wenn Du immer weiterhin darauf rumarbeiten musst.
    Das ist jetzt nicht böse gemeint, aber das stört halt ein wenig. Das hat schon seinen Sinn, wenn ich oder jemand anderes etwas sagt oder verlinkt, so ist es ja nicht. Wenn natürlich noch Fragen diesbezüglich offen sind, können diese gerne gestellt werden, aber die Zweifelhaftigkeit ist halt ein wenig fragwürdig. ;)
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    nanu?
    ich habe EINE Lösung pärsentiert .. 2 Zeilen.. nicht mehr..

    Dann wurde ich verbessert, aber keine Lösung gezeigt, um darum geht's ja wohl, sondern wurde ich auf meine Unfähigkeiten hingewiesen.
    Und darauf darf ich doch wohl reagieren?

    oder anders gesagt, "Ich habe nicht angefangen" 8o 8o
    Prima :) das ist doch mal eine Lösung :)
    Der TE wird dann bestimmt wissen wo seine Datenquelle ist (oder halt nochmal nachfragen) und alles ist paletti..

    und nebenbei.. ist dein String.emtpy besser. (muss ich mir unbedingt endlich angewöhnen)
    @RoulettePilot By the way wollen wir nur auf Fehler oder Unsauberkeiten hinweisen und nicht in irgendeiner Art und Weise beleidigen oder was auch immer.
    Im Endeffekt hat der, der den Fehler gemacht hat ja dann den Vorteil, denn er lernt es besser zu machen.
    Ich habe mich gerade mal kurz mit DataBinding beschäftigt. Gefällt mir sehr gut.
    Ist aber irgendwie auch etwas unübersichtlich, klappt aber dafür sehr gut. (Wenn ein Fehler drin ist bitte drauf hinweisen :))

    VB.NET-Quellcode

    1. Dim DatenObjekt As New Data()
    2. Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. DatenObjekt.Value = "Ein Text"
    4. Label1.DataBindings.Add("Text", DatenObjekt, "Value")
    5. End Sub
    6. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    7. DatenObjekt.Value = "Neuer Text"
    8. End Sub
    9. ''' <summary>
    10. ''' Stellt eine Klasse zum Speichern der Daten dar
    11. ''' </summary>
    12. ''' <remarks></remarks>
    13. Public Class Data
    14. Implements INotifyPropertyChanged
    15. Public Event PropertyChanged(sender As Object, e As PropertyChangedEventArgs) Implements INotifyPropertyChanged.PropertyChanged
    16. Private _value As String
    17. Public Property Value As String
    18. Get
    19. Return Me._value
    20. End Get
    21. Set(value As String)
    22. Me._value = value
    23. Me.NotifyPropertyChanged("Value")
    24. End Set
    25. End Property
    26. Private Sub NotifyPropertyChanged(info As [String])
    27. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
    28. End Sub
    29. End Class

    LaMiy schrieb:

    VB.NET-Quellcode

    1. Set(value As String)
    2. Me._value = value
    3. Me.NotifyPropertyChanged("Value")
    4. End Set
    Wichtig ist bei solchen Settern immer, dass abgeprüft wird, ob auch wirklch eine Änderung stattfund:

    VB.NET-Quellcode

    1. Set(value As String)
    2. if Me._value = value then return
    3. Me._value = value
    4. Me.NotifyPropertyChanged("Value")
    5. End Set
    Die Bindung kann enorm umfangreichen Aktualisierungs-Code auslösen, und daher ist das Event so sparsam wie möglich zu raisen

    Ansonsten ist hier bisserl mit Kanonen auf Spatzen geschossen.
    So Databinding-Kram macht eher Sinn, wenn man ganze Listen solcher Datenobjekte hat, und wenn man die in verschiedenen Szenarien zur Anzeige bringen will.
    Und da bin ich wieder ganz schnell beim typDataset, weil da ist dieser Kram drin eingebaut, und noch zig weitere Features