Suchergebnisse

Suchergebnisse 1-18 von insgesamt 18.

  • Benutzer-Avatarbild

    Hi, ich hab ein Problem, das ich prinzipiell lösen kann. Leider sind meine Lösungswege extrem aufwändig. Vielleicht habt ihr Ideen, wie man das eleganter lösen kann. Reversi. Ich habe eine Spielmatrix als DatagridView abgebildet. Die Zellen enthalten einfache Grafiken. Nun möchte ich, in die Zellen, die für mögliche Züge infrage kommen, die Anzahl der invertierbaren Zellen einstellen, also eine Zahl. Ich hab das mal so realisiert, dass ich über die Zellen jeweils ein Label gelegt habe. (s. Anhan…

  • Benutzer-Avatarbild

    Erst mal vielen Dank für die Antworten, die ja irgendwie in die gleiche Richtung gehen. Zitat von NoIde: „Aber es gibt auch ein DataGridView.CellPainting-Event da kannst du die Cell selbst malen.“ Das würde ich gern versuchen umzusetzen. Wenn ich das Ereignis CellPaint abonniere, dann habe ich unter e. eine ganze Reihe von Methoden ... unter anderem die Paint Methode. Und wie kann ich damit jetzt eine Zahl in die Zelle hineinmalen ? Zitat von ErfinderDesRades: „auch deine komische Zahl, deren Si…

  • Benutzer-Avatarbild

    Ok, erst mal vielen Dank für dein Code Beispiel. Das hab ich jetzt versucht umzusetzen. Meine ursprungliche Lösung habe ich nach rechts verschoben ... links steht der neue Lösungsansatz: VB.NET-Quellcode (24 Zeilen) Bevor ich mir zuviel Arbeit mache: Verstehe ich das richtig, dass ich jetzt alle Dinge, die ich normalerweise im Designer eintrage, jetzt programmgesteuert im Load vereinbaren muss? Die 8 Spalten kann ich definieren ... wenn ich die 8 Zeilen hinzufüge erhalte ich 9 ? Die LOCATION Ang…

  • Benutzer-Avatarbild

    Ok, Dgv.ColumnCount=8 nimmt mir die Arbeit ab, die 8 Spalten von Hand zu definieren. Das ist ja schon mal etwas. Aber so Sachen wie ColumnHeaders.Visible = False und RowHeaders.Visible=False die muss ich ja schon von Hand einstellen? Und nach wie vor ist das dynamische Control weit entfernt von meiner Vorgabe ! Wie geht das denn jetzt mit dem Einfärben des Backgrounds? Wie kann ich denn die Location festlegen ? etc. etc. LG Peter

  • Benutzer-Avatarbild

    Ok, dann ist dass mit dem dynamisch generierten Control also nicht so gemeint ! Ist ja schön zu wissen. Wie man die Ereignisprozeduren eines Controls anzeigt weiß ich schon. Aber die Frage ich jetzt welches Ereignis ich verwenden soll .... und was ich darin tun soll. Ich hab das schon (vor deinem Beitrag) wie folgt versucht: VB.NET-Quellcode (6 Zeilen) Da tut sich aber nix. Die vermaledeite "1" wird nicht angezeigt. Der Debugger zeigt, dass die Routine enorm oft aufgerufen wird. Was mache ich fa…

  • Benutzer-Avatarbild

    Na, so langsam nähern wir uns ja einer Lösung an. Aber am Ziel sind wir noch nicht. Ich habe jetzt versucht in eine Zeile Kreise zu malen und in die nächste eine Zahl zu schreiben und die dritte Zeile frei zu lassen. VB.NET-Quellcode (18 Zeilen) Die Kreise klappen aber die Zahlen kommen nicht an. Außerdem ist noch offen, wie ich die Hintergrundfarbe der Zelle setze. Meine Versuche dazu sind bisher alle gescheitert. Das ist schon eine zähe Angelegenheit !

  • Benutzer-Avatarbild

    verdammt ... das hab ich doch glatt übersehen ! Ok ... also dann bleibt die Sache mit der Hintergrundfarbe. VB.NET-Quellcode (1 Zeile) Das hätte ich mir beispielsweise vorgestellt. Aber es funktioniert nicht. Außerdem wäre es schön, wenn man die Kreise ein bissl kleiner machen könnte. Außerdem würde ich gern den Schriftgrad der Zahlen etwas vergrößern.

  • Benutzer-Avatarbild

    [edit] Jetzt habe ich doch noch ein Problem: Wenn ich eine Zelle verändere, dann ändern sich ja auch die "eligible numbers" und damit muss ich ALLE Zellen der Datagrid View neu malen. Ich habe deshalb versucht die Grafics Methode AUSSERHALB des CellPainting Events aufzurufen. Aber das klappt wohl nicht, weil die Methode zu dem CellEvent e.der Cell gehört. VB.NET-Quellcode (1 Zeile) Fehler BC30469 Der Verweis auf einen nicht freigegebenen Member erfordert einen Objektverweis. Wie kann ich denn di…

  • Benutzer-Avatarbild

    Ich hoffe mal, dass sich dein Posting auf den neuesten Stand meines Posting bezieht. Dass ich die Sache mit der Hintergrundfarbe, der Schriftgröße und der Größe des Kreises gelöst habe, hast du gelesen ? Zitat von ErfinderDesRades: „ Guck dir die Rectangle-Struktur im OB an, insbesondere Methoden, die mit I anfangen. Welche sind das?“ Also wenn ich nach Rectangle im OB suche, dann erhalte ich System.Drawing.Rectangle. Das wird gleich ZWEIMAL angezeigt. Warum auch immer? Dort finde ich dann die E…

  • Benutzer-Avatarbild

    Ich hab doch System.Drawing.Rectangle geöffnet. Ich vermute ich bin nicht an der "richtigen" Stelle im OB.

  • Benutzer-Avatarbild

    Zitat von ErfinderDesRades: „Du hast die Basisklasse Object angewählt. Wähl mal System.Drawing.Rectangle an.“ Das habe ich schon vorher getan (s. Anhang). Aber auch da finde ich nix. Jetzt lass uns doch nicht um den heißen Brei herum reden. Ich gestehe freimütig meine umfassende Inkompetenz ein ... aber jetzt sag mir doch endlich, wo ich was finde ! Auch ohne Tut "Google is not your mother" ... LG Peter

  • Benutzer-Avatarbild

    Also, ich will gern was lernen. Auch die Bedienung des ObjectBrowsers. Dazu bin ich ja hier. Ich hab mir auch sehr viel Mühe gegeben, deine Ratschläge umzusetzen. Aber ich bin halt kein Hellseher. Rectangle.Inflate kann die Größe eines Rechtecks verändern. Aber jetzt mal ganz im Ernst, das hab ich doch mit der folgenden Technik auch hin bekommen: VB.NET-Quellcode (5 Zeilen) Ich hab doch geschrieben, dass die Sache mit der Größe des Kreises längst erledigt ist. Insofern verstehe ich deinen Punkt …

  • Benutzer-Avatarbild

    Natürlich hab ich da nix gegen das CellPainting einzuwenden. Dann versuche ich meine Frage einmal anders zu stellen: Wenn ich in meiner DatagridView zum Beispiel die Zelle(2, 3) anklicke, dann ändert sich dadurch ihr Inhalt. Das geschieht in CellPainting. Gleichzeitig muss jetzt aber auch möglicherweise etwa die Zelle(3, 4) geändert werden, weil sich ihr Zähler geändert hat und vielleicht auch die Zelle (3, 3) weil sich ihre Farbe geändert hat. Da passiert aber nix ... weil diese Zellen nicht an…

  • Benutzer-Avatarbild

    Da habe ich mich falsch ausgedrückt. Wenn ich eine Zelle anklicke, verändert sich die ANZEIGE ... und damit muss sich auch die Anzeige in einer anderen Zelle ändern. In beiden Fällen wird gemalt. Die Frage ist: wenn CellPaint die Anzeige in einer Zelle ändert, wie kann ich dann das CellPaint Ereignis für eine andere Zelle aufrufen ? Das ist doch eigentlich eine klare Fragestellung Ich verstehe wirklich nicht, was daran jetzt so missverständlich sein soll.

  • Benutzer-Avatarbild

    Lass uns keine Wortklauberei betreiben. Also gut, dann machen wir halt mal ein Datenmodell: Es gibt eine 8 x 8 Matrix. Die Zellen dieser Matrix können drei Zustände haben: leer schwarz weiß Wenn der Zustand "schwarz" ist, dann soll ein schwarzer Kreis angezeigt werden. Wenn der Zustand "weiß" ist, dann soll ein weißer Kreis angezeigt werden. Wenn der Zustand "leer" ist, dann soll eine Zahl angezeigt werden. Den Zustand von einigen leeren Zellen kann man durch Anklicken der Zelle ändern. Nach jed…

  • Benutzer-Avatarbild

    Also im Design hätte ich jetzt eigentlich keine Hilfe gebraucht. So sieht meine Klasse aus: Quellcode (9 Zeilen) Ich habe jetzt alles was die DatagridView betrifft aus den Methoden herausgenommen. Allein das CellPaint Event verändert jetzt das Aussehen der DatagridView. Die Methoden SetupBoard, PerformMove und UndoRedoMove rufen am Ende RebuildDisplay auf. In dieser Methode werden alle Zeilen der DatagridView gelöscht und dann neu eingefügt. Damit werden alle Zellen durch das CellPaint Event neu…

  • Benutzer-Avatarbild

    Ok ... InvalidateCell(ixcol, ixrow) ... Da hätte man auch wesentlich weniger Wirbel drum machen können. Ich halte den OB keineswegs für Hexenwerk. Nur wenn ich unter "Rectancle" nach Methoden suchen soll, die mit "I" anfangen, dann kann ich nicht fündig werden, weil es die schlicht und ergreifend nicht gibt. Aber jetzt bleibt die Sache so wie se iss ! Ich lasse nämlich nun die Maschine gegen sich selbst spielen, um heraus zu finden, welche Strategien am wirkungsvollsten sind, hehehe ... das mach…

  • Benutzer-Avatarbild

    Zitat von ErfinderDesRades: „Du scheinst dich aber zu jmd zu entwickeln, der lieber Lösungen vorgesagt bekommt, als selbst die Mittel zu benutzen, mit denen man sich sachkundig machen kann.“ Du hast sehr viel Wissen und du gibst mir freundlicherweise sehr gute (wenn auch manchmal etwas kryptische) Ratschläge. Und deswegen lasse ich das jetzt einfach mal so stehen. Du hast natürlich recht, es gibt in Rectangle Methoden, die mit "I" anfangen. Nur leider ist keine davon problemrelevant. Also, lass …