DataGridView RowsDefaultCellStyle - Was ist denn da passiert?

  • VB.NET
  • .NET (FX) 4.0

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Drahuverar.

    DataGridView RowsDefaultCellStyle - Was ist denn da passiert?

    Hallo Leute,

    um es kurz zu machen:
    Was ist denn da passiert?
    (siehe Bild)

    Alle anderen Zelleninhalte sind im MiddleCenter positioniert.
    Fülle das DGV über ein DataSet, also müsste es ja daran liegen das die Zeichenkette zu diesem Zeitpunkt schon Leerzeichen hat. (?)
    Kann ich den String während dem füllen der jew. Zelle abändern? Bzw. wie mache ich es am besten ohne größeren Zeitverlust.

    Grüße,
    Drahuverar

    Verschoben. ~Trade
    Bilder
    • Bild 1.png

      2,79 kB, 131×164, 179 mal angesehen
    Option Strict On!

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

    Drahuverar schrieb:

    wie mache ich es
    Was musst Du per Tastatur tun, damit die Zelle richtig aussieht (z.B. führendes Leerzeichen wegnehmen)?
    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!
    Also wenn ich in die Zelle reinklicke und "F2" drücke zum umbenennen klicke steht mein Cursor ja auf der letzten Position, bzw. Ende des Strings. (Zelleninhalt)
    Also scheint in der Datenbank ja dieses Feld schon mit unnötigen Whitespaces gefüllt zu sein. (Und ich frage mich sowieso, warum man ein Feld, welches nur Zahlen beinhaltet, als varchar hinterlegt 8| :cursing: )

    Bezüglich des Styles: Ich hab alles in einer Methode ausgelagert, welche ich am ende des Form-Load Event aufrufe.

    ErfinderDesRades schrieb:

    füllen ohne Zeitverlust

    Ich dachte mir, wenn ich später 1000 Datensätze habe und jede einzelne Zelle dieser Spalte durchlaufen würde, dass ich ja im Grunde Zeit verliere :rolleyes:

    Edit:
    @RodFromGermany
    Per Tastatur; F2 auf der Zelle und, wenn ich mitzähle, 16 mal Backspace drücken.
    Option Strict On!

    Drahuverar schrieb:

    (Und ich frage mich sowieso, warum man ein Feld, welches nur Zahlen beinhaltet, als varchar hinterlegt )
    Ja, sowas verursacht endlos Ärger.
    Wenn irgend geht, bring das in Ordnung, beschwer dich, veranlasse, dass es in Ordnung gebracht wird.
    Oder frag halt mal, obs dafür einen Grund gibt.
    Aber wie's aussieht ist das eine Schlüsselspalte, und bei Schlüsselspalten ist sowas eiglich immer ein Fehldesign.

    Drahuverar schrieb:

    16 mal
    Wenn das automatisierbar ist, würde ein .Trim() genügen.
    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!
    @ErfinderDesRades
    Ja, werde mal nachfragen wo die Sinnigkeit liegt.. (muss ja irgendeinen Sinn geben[?])
    ArtikelNUMMER sollte ja schon darauf hindeuten 'int' zu nutzen :huh:

    @RodFromGermany
    Okay. Dann mach ich mal 'ne kleine Schleife bis das "Problem" behoben bzw. geklärt ist..

    VB.NET-Quellcode

    1. For i = 1 To DataGridView1.ColumnCount
    2. str = ((DataGridView1.Rows(i).Cells(3).Value.ToString).Trim)
    3. DataGridView1.Rows(i).Cells(3).Value = str
    4. Next


    ...bringt leider auch nichts. Ist immer noch mit Leerzeichen in der Zelle. :/

    VB.NET-Quellcode

    1. 'Nach der Schleife:
    2. DataGridView1.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter



    Edit:
    Nope, wenn ein Datenfeld als varchar hinterlegt ist kann man da nicht tricksen.
    Option Strict On!

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Drahuverar“ ()