Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 17:37

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C#]Windows Form - Bildteile farbig Markieren

Discussion on [C#]Windows Form - Bildteile farbig Markieren within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 10
Join Date: Aug 2012
Posts: 813
Received Thanks: 106
[C#]Windows Form - Bildteile farbig Markieren

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).

Beispiel:
[Normal]
[Maus über der Fläche]

Es sollte am besten nur die Umrandung (und ggf. ein paar Ramenlinien) gefärbt werden, so wie in dem Beispiel.



Ich bin für jede hilfreiche Antwort dankbar.
GodHacker is offline  
Old 07/23/2013, 21:29   #2
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
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...
Ludder231 is offline  
Old 07/23/2013, 21:43   #3
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
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.
Kraizy​ is offline  
Thanks
2 Users
Old 07/23/2013, 22:17   #4


 
Else's Avatar
 
elite*gold: 4
The Black Market: 166/0/0
Join Date: Feb 2008
Posts: 3,854
Received Thanks: 1,268
Wie wäre es mit MouseHover? Ansonsten musst du, wie bereits erwähnt, die Pixel selbst rausrechnen. (Position; je Breite, Höhe)
Else is offline  
Thanks
1 User
Old 07/23/2013, 22:48   #5
 
elite*gold: 10
Join Date: Aug 2012
Posts: 813
Received Thanks: 106
Ok, das klingt schon einmal gut.
Wie mache ich dies nun in der Praxis? Hat jemand eine Anleitung (Links, Codebeispiele, etc.) für mich?
GodHacker is offline  
Old 07/23/2013, 23:00   #6
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
Mausposition abfragen: MouseMove_Event
GDI:

Pseudo-Code:
PHP Code:
if mouse.button.x andalso mouse.< (button.button.widththen //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 :>
Kraizy​ is offline  
Thanks
1 User
Old 07/23/2013, 23:45   #7
 
elite*gold: 10
Join Date: Aug 2012
Posts: 813
Received Thanks: 106
Quote:
Originally Posted by Kraizy​ View Post
Mausposition abfragen: MouseMove_Event
GDI:

Pseudo-Code:
PHP Code:
if mouse.button.x andalso mouse.< (button.button.widththen //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).
GodHacker is offline  
Old 07/23/2013, 23:54   #8
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,811
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.
Kraizy​ is offline  
Thanks
1 User
Old 07/24/2013, 12:45   #9



 
Sedrika's Avatar
 
elite*gold: 18
The Black Market: 103/0/0
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
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.
Sedrika is offline  
Thanks
1 User
Old 07/24/2013, 21:46   #10
 
elite*gold: 10
Join Date: Aug 2012
Posts: 813
Received Thanks: 106
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.
GodHacker is offline  
Old 07/27/2013, 16:23   #11
 
elite*gold: 0
Join Date: May 2010
Posts: 88
Received Thanks: 23
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,
Easy-Emu is offline  
Old 07/29/2013, 23:40   #12
 
elite*gold: 10
Join Date: Aug 2012
Posts: 813
Received Thanks: 106
Quote:
Originally Posted by Easy-Emu View Post
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)
GodHacker is offline  
Old 07/30/2013, 12:33   #13
 
elite*gold: 0
Join Date: May 2010
Posts: 88
Received Thanks: 23
Na dann ok. Bei dieser Antwort empfehle ich dir: Lass es am besten ganz sein und hör auf einem damit zu belästigen.
Easy-Emu is offline  
Old 07/30/2013, 14:21   #14
 
elite*gold: 0
Join Date: Dec 2009
Posts: 29
Received Thanks: 3
Hier nen einfacher vorschlag mit winforms

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
taigatenshi is offline  
Old 08/01/2013, 00:01   #15
 
elite*gold: 10
Join Date: Aug 2012
Posts: 813
Received Thanks: 106
Quote:
Originally Posted by taigatenshi View Post
Hier nen einfacher vorschlag mit winforms

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 View Post
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.
GodHacker is offline  
Reply


Similar Threads Similar Threads
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
//



All times are GMT +1. The time now is 17:38.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.