Convert point to string

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von exc-jdbi.

    Convert point to string

    Hey,
    ich würde gerne einen String und ein Point in einen String zusammenfassen. Wie konvertiere ich das? Hab nichts gefunden :/ (Es wäre eine "1" und die Positionsdaten einer Picturebox (Picturebox1.location))

    Würde mich sehr über antworten freuen :D



    Schönen Abend noch :)

    Verschoben. ~Thunderbolt

    ╔══╦═╦╦╦═╦══╦══╦╗╔╦═╦╦═╦══╗
    ║║║║╩╠..╣╦╬╗╚╬╗╔╣╚╝║╠║║║╠╗╚╣
    ╚╩╩╩╩╩╩╩═╩══╝╚╝╚══╩═╩╩═╩══╝

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Fröhliches Glaskugelbefragen!

    Fangen wir vielleicht mal so an: Was hast Du denn überhaupt vor? Es gibt über neuntausend verschiedene Möglichkeiten, einen String und einen Point zu einem String zusammenzufassen.
    Hilfreich wäre z.B. ein Funktionsrumpf. Stellst Du Dir sowas vor?:

    VB.NET-Quellcode

    1. Function Zusammenfassen(DerString As String, DerPunkt As Point) As String
    2. 'ToDo
    3. End Function


    Relevante Fragen sind:
    Soll es (gut) menschen-lesbar sein?
    Soll es irgend einem bekannten Format entsprechen? (z.B. JSON, XML, CSV, ...)
    Soll es umkehrbar sein? (Also soll man aus dem zusammengefassten String auch wieder die ursprünglichen Werte rausbekommen können?)

    Edit: Ach ja. Welchen Point-Typ meinst Du? System.Drawing.Point oder System.Windows.Point oder vielleicht was eigenes?
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Niko Ortner“ ()

    Wenn ich mich Recht erinnere, besitzt der Point Koordinaten in der X und Y Achse. Ich nehme mal an, dass du diese in den String packen willst?

    Jetzt stellt sich mir die Frage was dich daran hindert einfach überall ein .ToString() zu schreiben und zusammen zu fügen.

    VB.NET-Quellcode

    1. Dim DerString As String = "1." & p.X.ToString() &"/"& p.Y.ToString()
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @MaxeStudios Wozu soll das dienen? Soll es wieder gelesen werden?
    Wie wäre es mit

    VB.NET-Quellcode

    1. Dim nb = 1
    2. Dim txt1 = String.Format("{0} {1}", nb, Picturebox1.location)
    3. ' oder
    4. Dim txt2 = String.Format("nb = {0}, x = {1}, y = {2}", nb, Picturebox1.location.X, Picturebox1.location.Y)
    Bist Du sicher, dass Du von WPF redest?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hier geht es nicht um WPF da es in der WPF keine Picturebox gibt. Hier ist es das Control Image.
    @MaxeStudios, bitte achte nächstes mal auf den bereich und das korrekte Label. Danke.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Guten Morgen

    Ich hab jetzt nicht auf der WPF-Seite geschaut.

    Aber manchmal, je nach Komplexität des Programms ist es auch ganz sinnvoll eine Class oder eine Struct zu machen. Soll nur als Beispiel dienen. Anstatt Point könnte man auch das Image in die Klasse reinnehmen, und anstatt einen String gleich den Index als integer.

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Option Strict On
    2. Option Explicit On
    3. Imports System.Drawing
    4. Imports System.Windows.Forms
    5. Module Module1
    6. Sub Main()
    7. Dim idx As String = "1" 'Warum nicht gleich Integer
    8. Dim point As New Point(15, 5)
    9. Dim sp As New StringPoint(idx, point)
    10. Dim str As String = sp.ToString
    11. Console.WriteLine(str)
    12. Dim idx2 As String = sp.idx
    13. Dim point2 As Point = sp.point
    14. Dim s() As String = sp.split(str)
    15. Console.ReadKey()
    16. End Sub
    17. End Module
    18. Public Class StringPoint
    19. Private _poi As Point
    20. Private _idx As String
    21. Public Property idx As String
    22. Get
    23. Return _idx
    24. End Get
    25. Set(ByVal value As String)
    26. _idx = value
    27. End Set
    28. End Property
    29. Public Property point As Point
    30. Get
    31. Return _poi
    32. End Get
    33. Set(ByVal value As Point)
    34. _poi = value
    35. End Set
    36. End Property
    37. Public Overrides Function ToString() As String
    38. If (Not _idx = String.Empty) AndAlso (Not _poi.IsEmpty) Then
    39. Return String.Format("{0} {1} {2}", _idx, _poi.X, _poi.Y)
    40. End If
    41. Return String.Empty
    42. End Function
    43. Public Function split(ByVal StringPointString As String) As String()
    44. If Not StringPointString = String.Empty Then
    45. Return StringPointString.Split(New Char() {" "c}, StringSplitOptions.RemoveEmptyEntries)
    46. End If
    47. Return Nothing
    48. End Function
    49. Private Sub New()
    50. MyBase.new()
    51. End Sub
    52. Public Sub New(ByVal _s As String, ByVal _p As Point)
    53. Me.new()
    54. Me._idx = _s
    55. Me._poi = _p
    56. End Sub
    57. End Class


    Freundliche Grüsse

    exc-jdbi