unbekanntes Zeichen in DataGridView

  • VB.NET

Es gibt 27 Antworten in diesem Thema. Der letzte Beitrag () ist von nemesis.

    unbekanntes Zeichen in DataGridView

    Hallo,

    ich erstelle über unten angegebenen Code ein Datagridview. Wie im Screenshot ersichtlich befindet sich aber am Anfang jeder Zeile ein unbekanntes Zeichen.
    Ich weiss nicht, wo das herkommt, oder wie ich das weg bekomme. Wenn ich den Inhalt in den Editor Kopiere ist da kein Zeichen.

    VB.NET-Quellcode

    1. DataGridView1.Enabled = True
    2. For Each Line As String In Lines
    3. Felder = Line.Split(Trennzeichen)
    4. Dim Row As DataRow = dt.NewRow
    5. Row.ItemArray = Felder
    6. dt.Rows.Add(Row)
    7. Next
    8. DataGridView1.DataSource = dt


    Screenshot:


    Weiss jemand, wie ich diese zeichen weg bekomme?

    Vielen Dank!
    E scheinen tatsächlich welche zu sein.

    Viele GUI-Elemente in .NET kennen die nicht so, und der Zeichensatz spielt ebenfalls eine Rolle.
    Dies kann auch passieren, wenn du den Inhalt aus einem Element Typ A in ein Element Typ B kopierst...
    Wie sieht der Rest Deines Codes aus?
    Bei mir sieht das so aus:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim lines As String() = {"fjfkj,as fh-ölkasd,", "uüöüöüöüö,üöüöü-üöüö", "ü,-ü"}
    3. Dim Trennzeichen As Char() = {","c, "-"c}
    4. Dim Felder As String()
    5. Dim dt As New DataTable
    6. dt.Columns.Add("11")
    7. dt.Columns.Add("22")
    8. dt.Columns.Add("33")
    9. dt.Columns.Add("44")
    10. DataGridView1.Enabled = True
    11. For Each Line As String In Lines
    12. Felder = Line.Split(Trennzeichen)
    13. Dim Row As DataRow = dt.NewRow
    14. Row.ItemArray = Felder
    15. dt.Rows.Add(Row)
    16. Next
    17. DataGridView1.DataSource = dt
    18. End Sub
    Bilder
    • dgv.jpg

      15,65 kB, 499×215, 283 mal angesehen
    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!
    Hm, ich hole den Text aus einer Textbox:

    VB.NET-Quellcode

    1. '============================================
    2. ' Datagridview aus Textbox1
    3. '============================================
    4. Const Trennzeichen As Char = ","
    5. Dim dt = New System.Data.DataTable()
    6. Dim Lines() As String
    7. Dim Felder() As String
    8. 'Spalten erzeugen
    9. dt.Columns.Add("User")
    10. dt.Columns.Add("Host")
    11. dt.Columns.Add("ID")
    12. dt.Columns.Add("Prot")
    13. Lines = TextBox1.Text.Split(Environment.NewLine)
    14. 'MsgBox(LBound(Lines) & UBound(Lines))
    15. If UBound(Lines) > 0 Then
    16. DataGridView1.Enabled = True
    17. For Each Line As String In Lines
    18. Felder = Line.Split(Trennzeichen)
    19. Trim(Felder(0))
    20. Dim Row As DataRow = dt.NewRow
    21. Row.ItemArray = Felder
    22. dt.Rows.Add(Row)
    23. Next
    24. DataGridView1.DataSource = dt
    25. Else
    26. DataGridView1.Enabled = False
    27. End If
    Stell zunächst mal auf Option Strict On um.
    Auch das sieht bei mir sehr ordentlich aus.
    Allerdings habe ich VS 2010, da weiß ich nicht, ob es daran liegt.
    Aber auch mit Network 2.0 sieht es bei mir ordentlich aus.
    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!
    :thumbsup: :thumbsup: :thumbsup:

    VB.NET-Quellcode

    1. Lines = TextBox1.Text.Split(CChar(Environment.NewLine))
    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!
    :thumbdown:
    Dann musst Du bei den anderen dasselbe machen oder

    VB.NET-Quellcode

    1. ","c
    schreiben.
    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!
    Welcher Text steht denn bei Dir in TextBox1?
    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!
    da hole ich text aus einer Konsole, eine Abfrage, welche benutzer auf einem terminalserver angemeldet sind:

    VB.NET-Quellcode

    1. Private Sub angemeldete_Benutzer(ByVal Server As String)
    2. Dim p As New System.Diagnostics.Process
    3. p.StartInfo.FileName = "H:\Software\Sysinternales\TSListUsers.exe "
    4. p.StartInfo.Arguments = Server
    5. 'MsgBox(p.StartInfo.FileName & p.StartInfo.Arguments)
    6. p.StartInfo.RedirectStandardError = True
    7. p.StartInfo.RedirectStandardOutput = True
    8. p.StartInfo.UseShellExecute = False
    9. p.StartInfo.CreateNoWindow = True
    10. p.Start()
    11. Dim sResult As String = p.StandardError.ReadToEnd & p.StandardOutput.ReadToEnd
    12. p.WaitForExit()
    13. Me.TextBox1.Text = sResult
    14. Zeilen_loeschen()
    15. angemeldete_Benutzer2Datatbl()
    16. End Sub
    17. Private Sub Zeilen_loeschen()
    18. Dim sLines() As String
    19. Dim i As Integer
    20. Dim nLineToDelete As Integer
    21. sLines = Split(TextBox1.Text, vbCrLf)
    22. TextBox1.Text = ""
    23. Dim strErlaubteChars As String = "0123456789"
    24. For i = 0 To UBound(sLines)
    25. Dim tmp As String = sLines(i)
    26. If tmp.Length = 0 Then GoTo ENDE
    27. tmp = tmp.Substring(tmp.Length - 1)
    28. If strErlaubteChars.IndexOf(tmp) < 0 Then
    29. GoTo ENDE
    30. End If
    31. TextBox1.Text = TextBox1.Text & sLines(i) & vbCrLf
    32. ENDE:
    33. Next
    34. End Sub
    35. Private Sub angemeldete_Benutzer2Datatbl()
    36. '============================================
    37. ' Datagridview aus Textbox1
    38. '============================================
    39. Const Trennzeichen As Char = CChar(",")
    40. Dim dt = New System.Data.DataTable()
    41. Dim Lines() As String
    42. Dim Felder() As String
    43. 'Spalten erzeugen
    44. dt.Columns.Add("User")
    45. dt.Columns.Add("Host")
    46. dt.Columns.Add("ID")
    47. dt.Columns.Add("Prot")
    48. Lines = TextBox1.Text.Split(CChar(Environment.NewLine))
    49. 'MsgBox(LBound(Lines) & UBound(Lines))
    50. If UBound(Lines) > 0 Then
    51. DataGridView1.Enabled = True
    52. For Each Line As String In Lines
    53. Felder = Line.Split(Trennzeichen)
    54. Trim(Felder(0))
    55. Dim Row As DataRow = dt.NewRow
    56. Row.ItemArray = Felder
    57. dt.Rows.Add(Row)
    58. Next
    59. DataGridView1.DataSource = dt
    60. Else
    61. DataGridView1.Enabled = False
    62. End If
    63. 'MsgBox(DataGridView1.Rows.GetLastRow(DataGridViewElementStates.Visible))
    64. Me.DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells)
    65. Me.DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
    66. Me.DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllHeaders

    RodFromGermany schrieb:

    Welcher Text steht denn bei Dir in TextBox1?
    Mögliche Antwort auf diese Frage wäre z.B.:
    Müller
    Meier
    Lehmann
    Schulze
    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!

    Lightsource schrieb:

    Könnte es sich nicht um die Ascii-Darstellung von Unicode handeln?
    Das denke ich auch, das sieht doch sehr nach einem Ansi-Code-Fenster aus.
    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!