datagridview einige fragen und probleme

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Kangaroo.

    datagridview einige fragen und probleme

    moin

    ich hab einige fragen an das datagridview
    und zwar


    1.
    wenn ich auf ein button klicke trage ich mehr daten in ein dgv ein

    VB.NET-Quellcode

    1. me.datagriedview1.Rows.Add("spalte1","spalte2","spalte3")

    so nun meine frage
    kann ich direkt beim eintragen auswählen welche schriftfarbe spalte2 haben soll?
    und wenn ja wie?

    2.
    spalte3 ist in meinem beispiel ein text so nun will ich abre wenn in dem text ein link ist zb google.de das wenn man da draufklickt (der link soll herforgehoben werden) das sich die seite öffnet? das gleich gibts ja in der textbox auch nur wie bekomme ich das ins dgv rein?

    3.

    vor jeder zeile ist ja das "*" das kann man ja ausblenden
    aber kann man das auch ändern? zb ein anderes symbol einfügen oder sowas in der art?
    1. Nein, die Farbe musst Du separat setzen, jede Zelle hat ihren Style.
    2. Das, was Du suchst, ist ein LinkLabel, müsstest Du für das DGV zu Fuß programmieren.
    3. :?:
    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!
    @RodFromGermany


    1.
    das mit der farbe hat ich dan mal so gelöst... das klppt auch so wie es soll ;)

    VB.NET-Quellcode

    1. me.datagriedview1.Rows.Add("spalte1","spalte2","spalte3")
    2. me.datagriedview.Rows(datagriedview.RowCount - 1).Cells(1).Style.ForeColor = Color.Orange
    3. me.datagriedview.Rows(datagriedview.RowCount - 1).Cells(2).Style.ForeColor = Color.Orange


    2.
    und wie mach ich das? sorry bin anfänger und bastel zum ersten mal mit dgv rum. ich möchte ja nur wenn in der spalte3 ein link steht das man dort draufklicken kann und das sich die seite öffnet also da steht ein langer text drinne und eben wenn auch ein link drinne sein soll dan... du weisst was ich meine :D

    3.
    naja hat sich geklärt ich bau den mist aus XD brauch eh kein mensch :D
    Ich weiß, was Du meinst.
    Probier mal, dem DGV eine DataGridViewLinkColumn hinzuzufü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!
    Dann hast Du ein Problem.
    Wer allerdings packt so viel Text in eine DGV-Zelle, dass da Text & Link drin stehen können?
    Du müsstest über Texterkennung prüfen, ob da so was drinsteht wie HTTP//, WWW: und solch Zeugs, dann das Ende davon erkennen (Textende oder das nächste Leerzeichen) und dann das ganze selber machen.
    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!
    hab eine weitere frage
    und zwar

    ich will jetzt nach einem eintrag überprüfen ob in der zweiten zeile ein bestimmtes wort ist...
    aber er überprüft es nicht sondern kackt ab...
    woran ligt das?

    hier mal mein code




    VB.NET-Quellcode

    1. Public bestimmteswort() As String = {"MVN050", "Serveradmin", "Admint", "Elo", "Gosu"}
    2. If me.datagridview.Rows(me.datagirdview.RowCount - 1).Cells(3).Value.contains(bestimmteswort) Then
    3. tue etwas
    4. End If

    jetz hab ich es mal so versucht

    VB.NET-Quellcode

    1. If bestimmteswort.contains( me.datagridview.Rows(me.datagirdview.RowCount - 1).Cells(3).Value)Then
    2. tue etwas
    3. End If


    woran liegt das?
    Mit Contains überprüft man Strings miteinander.
    Da du aber ein Array hast wird es nicht funktionieren.

    Stell Option Strict On, damit sollte die IDE mäckert.

    Du musst das Array mit ner Schleife durchgehen und alle enthaltenen Strings überprüfen.

    MVN050 schrieb:

    kann ich direkt beim eintragen auswählen welche schriftfarbe spalte2 haben soll?
    Nein, aber Du hast verschiedene Ebenen auf denen Du Style-Angaben (Color, Font, etc) definieren kannst. Für jede Zelle wird in folgender Reiehnfolge abgefragt ob ein Style-Element vorliegt:
    1. DataGridViewCell.Style
    2. DataGridViewRow.DefaultCellStyle
    3. DataGridView.AlternatingRowsDefaultCellStyle (nur für Zellen in Zeilen mit ungeraden Indexnummern)
    4. DataGridView.RowsDefaultCellStyle
    5. DataGridViewColumn.DefaultCellStyle
    6. DataGridView.DefaultCellStyle
    Du kannst also falls beabsichtigt für eine ganze Spalte eine gesonderte Farbe angeben. -> Zellstile im DataGridView-Steuerelement

    MVN050 schrieb:

    ch will jetzt nach einem eintrag überprüfen ob in der zweiten zeile ein bestimmtes wort ist...
    aber er überprüft es nicht sondern kackt ab...woran ligt das?
    Das liegt daran, daß Value nicht automatisch ei String ist, sondern ersteinmal ein Object. -> DataGridViewCell-Member Insofern musst Du explicit mit CStr(cell.value) in einen String umwandeln. Die erwähnte Option Strict ON, vorzugsweise schon in den Projekteigenschaften gesetzt, hilft Dir dabei das schon während der Codeeingabe zu bemerken.

    MVN050 schrieb:

    kann man auch irgentwie einstellen das er gross und klein schreibung nicht beachtet?
    Wenn Du prüfen möchtest ob ein String einen anderen enthält ohne dass Gross/Kleinschreibung beachtet werden, so wandel beide vorher z.B. entweder in Gross- oder Kleinschreibung um. Das geht indem Du .toUpper oder .ToLower daran hängst.