Bild als Button benutzen, aber nur eine bestimmte Stelle..!
-
warum nicht an die stelle ein button positionieren und das bild im Z level eins hoeher die ganze flaeche?
falls das nicht geht (weiss ich grad nicht) wuerde sich ein transparenter button ueber dem bild anbieten
-
MAch eine Picturebutton.
Im Event bekommt du die Mausposition mit.
Dort kannst du dann darauf reagieren.
-
wieso hat www.aspnetsoft.de kein impressum? abmahnung gefällig?
-
nimm WPF^^
-
BorisDieKlinge schrieb:
nimm WPF^^
und wie wuerdest du es in wpf loesen ? die vorschlaege hier sind doch fuer forms und wpf benutzbar
-
`sorry.. habs nur schnell überlesen.. dachte image im button.. gibts keine transparents UserControl mit Onclick event?
-
du meinst ein control welches das bild und das klick machst ?
nunja, obs direkt im fenster erledigt wird oder in einem angezeiten user control ist voellig egal #ggvermutlich ist es so das beste:
ein canvas mit der groesse des bildes
bild rein sodass es ausgefuellt ist
button rein und mit top+left positionieren
button transparent machen - am besten noch n eigenen style sodass auch nichts aufblinkt beim windows theme bei mouse over oder aehnliches
feddich
-
Danke ür eure Anworten..!
Der Vorschalf von Mr Evil mit dem transparenten button hört sich am einachsten an würde ich mal sagen..!
Aber mich würde trotzdem interessieren wie ich die Koordinaten (Mausposition) erkunden kann...und somit irgendwie dann weiter zu reagieren..!
-
Servus,
so wie es Knuddlbaer geschrieben hat. Allerdings habe ich das MouseClick event verwendet. (Vorteil: Reagiert erst nach MouseDown und MouseUp)
private void OnPictureBoxClick(object sender, MouseEventArgs e) { if ( ( e.X < 20 ) && ( e.Y < 20 ) ) MessageBox.Show("Hier wurde geklickt!!"); }
Der Parameter "e" hat die Mausposition. Jetzt kann nur in der oberen linken Ecke geklickt werden. (In einem Bereich von 20x20 px)
gruß
Hellsgore
-
Hellsgore schrieb:
Servus,
so wie es Knuddlbaer geschrieben hat. Allerdings habe ich das MouseClick event verwendet. (Vorteil: Reagiert erst nach MouseDown und MouseUp)
private void OnPictureBoxClick(object sender, MouseEventArgs e) { if ( ( e.X < 20 ) && ( e.Y < 20 ) ) MessageBox.Show("Hier wurde geklickt!!"); }
Der Parameter "e" hat die Mausposition. Jetzt kann nur in der oberen linken Ecke geklickt werden. (In einem Bereich von 20x20 px)
gruß
HellsgoreJa ok...danke..!
Allerdings funkt. es so wie du es geschrieben hast nicht, weiss so richtig nicht wieso.
Mit pictureBox1_MouseDown funkt es einwandfrei..!
Ahh hätte noch ne Frage, nur so aus neugierde, wie kann man ein Kreis mit Coordianten beschreiben, muss doch sicher ne func geben wo man ein coordinate und ein radius angibt und somit ein Kreis berechnet, oder nicht..?
-
@Bonafide: willst du einen Hit-Test mit einem Kreis oder was?
Falls ja:// x, y: zu testende koordinaten float dx = (float)(kreis_mitte_x - x); float dy = (float)(kreis_mitte_y - y); float distance_square = dx * dx + dy * dy; float radius_square = kreis_radius * kreis_radius; if (distance_square <= radius_square) { // im kreis :) }