Hallo,
ich würde gerne wissen, ob (und wenn ja, dann wie) es möglich ist in einer Windows Form einzelne Teile eines Bildes, welches in einer PictureBox ist, dazu zu bringen, dass sie die Farbe ändern, wenn man mit der Maus über diese geht und diese Teile des Bilden dann auch wie einen Button anklicken kann, damit eine Aktion ausgeführt wird.
Die Teile des Bildes haben hierbei immer eine andere Form.
Es ist mir egal, ob ich noch ein weiteres Steuerelement hinzufüge, welches sich ändert und anklickbar ist (es soll nur gehen).
Ich bin mir nicht sicher aber geht das nicht wie bei Schrift auch über Color und Forecolor etc? Da gibts bestimmt iwas mit Border oderso. brauchte das noch nie, aber ich schätze mal...
Keine Ahnung obs eine bessere Möglichkeit gibt, aber was mir auf die Schnelle einfallen würde:
du speicherst von jeden Buttons (also zb Home-Button, Menu-Button, ...) die Position, und prüfst ob die Maus in diesem Bereich ist. Falls ja, einfach die Umrandung mit GDI übermalen.
if mouse.x > button.x andalso mouse.x < (button.x + button.width) then //wenn maus innerhalb des button bereichs..kannst aber auch einfach zb if mouse.x > 20 andalso mouse.x < 40 then nehmen. angenommen dein Button wäre jz 20px breit und beginnt bei X:20 auf deinem Bild (nur ein Beispiel). das ganze natürlich auch mit der Y Koordinate. gdi.drawlines else gdi.remove end if
Falls ich grad komplette scheiße schreibe, dann sry, bin grad ziemlich müde :>
if mouse.x > button.x andalso mouse.x < (button.x + button.width) then //wenn maus innerhalb des button bereichs..kannst aber auch einfach zb if mouse.x > 20 andalso mouse.x < 40 then nehmen. angenommen dein Button wäre jz 20px breit und beginnt bei X:20 auf deinem Bild (nur ein Beispiel). das ganze natürlich auch mit der Y Koordinate. gdi.drawlines else gdi.remove end if
Falls ich grad komplette scheiße schreibe, dann sry, bin grad ziemlich müde :>
Also kann ich auch einfach beim Klicken abfragen, an welcher Position es war und somit dann die entsprechende Funktion ausführen, oder muss ich irgendwie noch über dem Bild die Buttons einbauen (wenn ja, wie mache ich es, dass diese dann genau auf diesen Formen sind)?
PS: Das Bild ist eine *.png Datei (in einer PictureBox, wie ich schon geschrieben habe).
Es gibt ja auch das MouseClick_Event, wo du ebenfalls die Mausposition abrufen kannst (e.X; e.Y). Dann einfach prüfen ob die Position der Maus im Bereich des jeweiligen Buttons liegt und wenn ja, kannst du deine Funktion ausführen lassen.
MouseHover Event und ggf. die OnPaint/Paint funktion umschreiben.
Mit XYZ.PointToClient(Cursor.Position) kannst du die aktuelle Position der Maus auf dem Objekt abfragen.
Danke, ich werde es mal probieren.
Wenn noch jemand etwas weiß oder mir Beispiele (oder Links) geben kann, dann währe ich dankbar, wenn ihr diese Postet.
Du solltest von Windows Forms auf WPF/XAML umsteigen (Windows Forms sind total veraltet), wenn das ganze nur auf Windows laufen muss. Dort kannst du solche Teile auch sehr gut per Patch zeichnen lassen und dort die Farben angeben.
Ansonsten kannst du auch mit transparenten Bildern arbeiten und beim Hover/Enter Event die Hintergrundfarbe ändern, wobei das Arbeiten mit solchen dingen, wie schon gesagt um einiges besser mit WPF klappt,
Du solltest von Windows Forms auf WPF/XAML umsteigen (Windows Forms sind total veraltet), wenn das ganze nur auf Windows laufen muss. Dort kannst du solche Teile auch sehr gut per Patch zeichnen lassen und dort die Farben angeben.
Ansonsten kannst du auch mit transparenten Bildern arbeiten und beim Hover/Enter Event die Hintergrundfarbe ändern, wobei das Arbeiten mit solchen dingen, wie schon gesagt um einiges besser mit WPF klappt,
Sehr toll... würde ich gerne machen, aber ich habe noch gar nichts mit WPF gemacht. Erklär du mir jetzt einmal, wie ich eine WPF-Anwendung gestalte, etc.
Hat schon einen Sinn, wenn ich nach Windows Forms frage und nicht nach WPF bzw. allgemein.
Hast du noch so tolle Ideen?
(Sry, aber wenn ich extra Windows Forms schreibe, dann sollte man sich wohl denken, dass dies seinen Grund hat und dann nicht mit solchen dämlichen Kommentaren um die Ecke kommen)
du legst ein weiteres bild (das selbe nur in farbe oder ähnliches)
bei einem mousover darüber
dann färbt sich das bild auch wenn du mit der maus drüber gehst
du legst ein weiteres bild (das selbe nur in farbe oder ähnliches)
bei einem mousover darüber
dann färbt sich das bild auch wenn du mit der maus drüber gehst
Wahrscheinlich nicht das beste, aber würde glaube ich gehen. Danke!
Quote:
Originally Posted by Easy-Emu
Na dann ok. Bei dieser Antwort empfehle ich dir: Lass es am besten ganz sein und hör auf einem damit zu belästigen.
Wenn du mit solchen Dingen kommst, wenn jemand speziell nach etwas anderem Fragt, dann musst du mit solchen Antworten rechnen. Wie gesagt, hat so etwas schon seinen Sinn, wenn man es schreibt.
Windows Form Pointer 10/17/2012 - C/C++ - 9 Replies Hallo, ich weis nicht genau ob der Titel wirklich passend ist ~.~
Ich habe mir in meiner DLL jetzt eine Windows Form geadded.. Funktioniert alles Wunderbar!
Jetzt will ich aber z.b listbox werte außerhalb von der Form Klasse ändern von anderen Funktionen halt aus..
So rufe ich die Form auf ganz normal..
int Main()
windows form 04/20/2010 - CO2 Private Server - 4 Replies okay i made this windows form application.
But how do i save it as a program, so i can make it to a rar file, so it can be used.
lol is an easy question, dont flame me or ill report.
And close this after i got answer.
C# Windows Form Application Errors 02/17/2010 - CO2 Private Server - 4 Replies When I open up a new project, even before I do anything I get these errors in Program.cs:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fal se);
Application.Run(new Form1());
How can I fix these?
Image on Windows Form, 02/08/2010 - CO2 Private Server - 6 Replies Anyone knows how to add the very small Image, of an Application Icon on a C# Windows form Application, Like,
http://img237.imageshack.us/img237/5849/imageke.p ng
flako27-
Windows form... 11/15/2008 - CO2 Private Server - 9 Replies //