WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 16.05.2006, 12:26   #1
delphirocks
bitte Mailadresse prüfen!
 
Registriert seit: 17.03.2002
Beiträge: 198


Standard .NET 1.1 Winforms DataGrid Events

Hallo,

weiß jemand, wie man ein "Click" event auf einem Datagrid abfangen kann, wenn der Fokus auf einer bestimmten Zelle liegt?

Ich möchte auf die Zelle des Grids klicken und damit den darunterliegenden Wert ändern (das Grid ist an eine DataTable gebunden).

Wenn der Fokus NICHT am Grid liegt, wird der Eventhandler aufgerufen, wenn der Fokus auf einer Zelle des Grids liegt, dann nicht
delphirocks ist offline   Mit Zitat antworten
Alt 17.05.2006, 14:44   #2
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

hi,

komisches verhalten, das klick event sollte eigentlich immer ausgelöst werden...

auswendig fällt mir ein: reagieren auf "onMouseDown" ereignis.
das Eventargs enthält die koordinaten des geklickten punktes.
Diesen kann man dann umrechnen und feststellen, auf welches element man geklickt hat - hört sich ev. kompliziert an, is aber garnicht so arg.

häng mal dein projekt als .zip hier an, dann kann ich mirs bei gelegenheit genauer ansehen.

fg
hannes
Biri ist offline   Mit Zitat antworten
Alt 17.05.2006, 20:53   #3
delphirocks
bitte Mailadresse prüfen!
 
Registriert seit: 17.03.2002
Beiträge: 198


Standard

Hallo,

danke für dein Angebot. Ich hab's aufgegeben, nachdem ich mich gestern stundenlang damit geärgert habe.

Der Event wird nicht ausgelöst, wenn der Fokus auf einer Zelle liegt. Liegt er jedoch außerhalb des Grids, dann schon.

Ich habe das Ganze jetzt mit dem MFC-Grid von Codeproject umgesetzt (unser Produkt ist eine gemischte MFC/.NET 1.1 Applikation).

Ich wollte nicht mit der Maus auf die Zelle klicken, sondern einfach eine Zahl in Abhängigkeit des darunterliegenden Datenbankfeldes mit shift-key up/down erhöhen bzw. erniedrigen. Zusätzlich sollte die Zelle noch ganz normal editiert werden können. Außerdem sollte eine Selection der ganzen Zeile möglich sein.

Das Winforms-Datagrid in der 1.1er scheint ziemlich beschränkt zu sein (um z.B. die ganze Zeile zu selektieren, muß von Hand nachprogrammiert werden). In der 2.0er ist's glaub' ich um einiges besser (die Rowselection funktioniert hier z.B. per property).

Das MFC-Grid funktioniert übrigens super und ist auch sehr einfach zu verwenden.

lg
delphirocks ist offline   Mit Zitat antworten
Alt 21.05.2006, 19:59   #4
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

hmm - eigenltich schlimm, weil ich dachte, dass sowas einfach gehen sollte - naja, der hund liegt oft im detail.

Zitat:
Ich wollte nicht mit der Maus auf die Zelle klicken, sondern einfach eine Zahl in Abhängigkeit des darunterliegenden Datenbankfeldes mit shift-key up/down erhöhen bzw. erniedrigen.
Dann ist aber schon klar, dass du kein click event bekommts, oder?
Ebent sollte OnKeyDown sein (nicht onChar, weil Pfeiltasten kein OnChar auslösen)

hab mit dem grid aber noch net wirklich viel gemacht, um details hier auswendig zu wissen - aber wenn du deine problem gelöst hast, ist das ja - projektmäßig betrachtet - das wichtigste.

fg
hannes
Biri ist offline   Mit Zitat antworten
Alt 21.05.2006, 22:18   #5
delphirocks
bitte Mailadresse prüfen!
 
Registriert seit: 17.03.2002
Beiträge: 198


Standard

Keydown oder Click, das war eigentlich egal.

Im 2.0er funktioniert's auch einwandfrei - und einfach, denn da gibts ein KeyPreview Event.

Das Grid in der 1.1er ist überhaupt ein ziemlicher Schmarren, wie unsere bayrischen Nachbarn zu sagen pflegen.

Leider war aber 2.0 keine Option hier, deswegen die MFC Lösung.

Also nocheinmal danke !
delphirocks ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:25 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag