C# Bestimmten Bereich eines Bildes als Button

PSP_GIGA

Cadet 3rd Year
Registriert
Jan. 2011
Beiträge
57
Hallo Leute,

und zwar ich habe vor einen bestimmten Bereich(Quadrat) in einem Bild als Button zu benutzen.

Bis jetzt sieht mein Code wie folgt aus:

Code:
if ((e.X = 354) && (e.Y > 353))
                MessageBox.Show("Hier wurde geklickt!!");

Leider kan man damit nicht den bestimmten Bereich ansprechen.

Dazu müsste ich 4 Koordinaten besitzen oder irr ich mich da?

Könnt ihr mir weiterhelfen?

Vielen Danke
PSP_GIGA
 
ja das stimmt schon ich möchte halt einen Bereich

kannst du mir da weiterhelfen?

________
Edit:

Code:
    if ((e.X > 354) && (e.Y > 353))
    MessageBox.Show("Hier wurde geklickt!!");

also e.X steht für die X Achse die ich anklicke und e.Y steht für die Y Achse

und wenn die größer als die Koordinaten sind die ich angegeben habe kommt die MessageBox

nur ich möcht das mehr eingrenzen, weil z.B. nach Links kein Ende gibt
 
Zuletzt bearbeitet: (.)
nein leider nicht, mich verwirrt nur dass deine y koordinate größer sein muss als 353, demnach ist doch gar kein pixel genau definiert, das kann dann ja alles oberhalb von 353 sein oder irre ich mich da?
 
wie wärs mit
Code:
if ((e.X > 354) && (e.X < 374) && (e.Y > 353)  && (e.Y < 373))   
              MessageBox.Show("Hier wurde geklickt!!");
 
Jo allgemein fragen ob

Code:
Mouse.X >= Button.X && Mouse.X <= Button.X + Button.Width && 
Mouse.Y >= Button.Y && Mouse.Y <= Button.Y + Button.Height
 
Eine linie stimmt schon, nur woher weiss das Programm wo ihre grenze ist, es ist gar kein rahmen gesetzt. Muss man da keinen definitionsbereich festlegen sonst geht das ins unendliche.
 
@Hades85

das auch meine Frage weil eigentlich brauch ich doch 4 Punkte um es genau zu definieren
 
Ne du brauchst nur zwei koordinaten, du müsstest demnach aber den pixel genau treffen mit der maus, damit deine messages kommt
 
ja aber ich möchte einen Bereich wie ein Viereck oder so dann bräucht ich eigentlich 4 mal X/Y Koordinaten oder?
 
Muss da kein vergleich gestellt werden. Dumm ausgedrückt wenn x == 354 und y == 354 , dann zeig nachricht "geklickt"?
Ergänzung ()

PSP_GIGA schrieb:
ja aber ich möchte einen Bereich wie ein Viereck oder so dann bräucht ich eigentlich 4 mal X/Y Koordinaten oder?

Wenn man es genau nimmt ist ein pixel schon ein viereck, aber du kannst auch ein größeres machen, dann brauchst du aber 4 koordinaten, zwei x und zwei y.
 
DerZock schrieb:
wie wärs mit
Code:
if ((e.X > 354) && (e.X < 374) && (e.Y > 353)  && (e.Y < 373))   
              MessageBox.Show("Hier wurde geklickt!!");

thats it!! damit haste dann dein viereck, rechteck oder was auch immer ...

ums mal einfach auszurücken ...

einschränkung von links e.X > 354
einschränkung von rechts e.X < 374
einschränkung von oben e.Y < 373
einschränkung von unten e.y > 353

das ergibt dann eine klare fläche!! eigentlich doch ganz easy oder nicht ... einfachstes logisches denken! die werte für die einschränkung kannst du ja dann abhängig von deinem bild machen!
 
Zuletzt bearbeitet:
Soweit ich das hier richtig verstehe , will er mit der maus auf einen button klicken, dieser button zeigt aber bevor er schon geklickt wird die message " hier wurde geklickt", weil er eine zuweisung gemacht hat (=) und keinen vergleich (==). Mal unabhängig davon wie er das quader oder viereck mit den koordinaten erstellt.
 
Soweit ich das hier richtig verstehe , will er mit der maus auf einen button klicken, dieser button zeigt aber bevor er schon geklickt wird die message " hier wurde geklickt", weil er eine zuweisung gemacht hat (=) und keinen vergleich (==). Mal unabhängig davon wie er das quader oder viereck mit den koordinaten erstellt.

sry das war mein Fehler oben steht es falsch hab es in meinem 2. post verbessert.

@Hollowman1985

ja aber da klickt er auch nur den bestimmten Punkt an und nicht das ganze Feld, so ist das zumindestens bei mir wenn ich es ausprobiere
 
Post #7 von mir, der ja scheinbar übergangen wird, und die Abfrage ob die Maustaste geklickt wird und fertig, wo ist das Problem?

Du kannst die Abfrage des Mauszeigers z.B. in eine eigene Methode "Hover" packen, die true zurück gibt, wenn der Mauszeiger im Bereich ist und false wenn nicht.

Sollte Hover == true sein, kannst du fragen ob die Maustaste geklickt wurde und darauf dann entsprechend reagieren.
Kannst auch alles in eine Abfrage tun, aber ich mache das so wie ich es beschrieben habe.
 
Zurück
Oben