´ÙÀ½ ¼¼ À̺¥Æ®´Â ÄÁÆ®·Ñ ¿µ¿ªÀ¸·Î ¸¶¿ì½º Ä¿¼°¡ µé¾î¿À°Å³ª ³ª¿Ã ¶§, ¶Ç´Â ÄÁÆ®·Ñ ¿µ¿ª ¾È¿¡¼ Ä¿¼°¡ µ¹¾Æ´Ù´Ò ¶§ ¹ß»ýÇÑ´Ù.
public event EventHandler MouseEnter
public event EventHandler MouseHover
public event EventHandler MouseLeave
MouseEnter´Â ÄÁÆ®·Ñ ¾ÈÀ¸·Î µé¾î¿ÔÀ» ¶§ ¹ß»ýÇϸç MouseHover´Â Ä¿¼°¡ ÄÁÆ®·Ñ ³»ºÎ¿¡¼ ÀÏÁ¤ ½Ã°£ ¸Ó¹«¸£°í ÀÖ´Ù´Â ¶æÀÌ°í MouseLeave´Â ¿µ¿ªÀ» ¹þ¾î³µ´Ù´Â ¶æÀÌ´Ù. ¼¼ À̺¥Æ®´Â ¸ðµÎ EventHandler ŸÀÔÀ¸·Î Á¤ÀǵǾî ÀÖ°í EventArgs Àμö´Â Ưº°ÇÑ ¸â¹ö°¡ ¾ø´Ù. ´Ü¼øÈ÷ À̺¥Æ® ¹ß»ý »ç½Ç¸¸ ¾Ë¸°´Ù.
MouseEnter |
using System; ~ using System.Windows.Forms;
namespace MouseEnter { public partial class Form1 : Form { private int count; private string Status; public Form1() { Status = "¾Ë¼ö ¾øÀ½"; InitializeComponent(); }
private void Form1_Paint(object sender, PaintEventArgs e) { e.Graphics.Clear(BackColor); e.Graphics.DrawString(Status, Font, Brushes.Black, 10, 10); e.Graphics.DrawString("Ä«¿îÆ® : " + count.ToString(), Font, Brushes.Black, 10, 30); }
private void Form1_MouseEnter(object sender, EventArgs e) { Status = "ÄÁÆ®·Ñ ¾ÈÀ¸·Î µé¾î¿Ô´Ù."; Invalidate(); }
private void Form1_MouseHover(object sender, EventArgs e) { count++; Invalidate(); }
private void Form1_MouseLeave(object sender, EventArgs e) { Status = "ÄÁÆ®·Ñ ¹Ù±ùÀ¸·Î ³ª°¬´Ù."; Invalidate(); } } } |
MouseEnter¿Í MouseLeave¿¡ ´ëÇØ ¹®ÀÚ¿·Î ÇöÀç »óŸ¦ Ç¥½ÃÇßÀ¸¸ç MouseHover¿¡ ´ëÇؼ´Â ¹ß»ý½Ã¸¶´Ù Ä«¿îÅ͸¦ 1 Áõ°¡½ÃÄ×´Ù.
¸¶¿ì½ºÀÇ µé°í ³²À» Á÷Á¢ °¨½ÃÇϱâ´Â ´ë´ÜÈ÷ ¾î·Æ´Ù. ¿µ¿ª ¾ÈÀ¸·Î µé¾î¿Ô´Ù´Â °ÍÀº MouseMove À̺¥Æ®·Î ¾Ë ¼ö ÀÖÀ» °Í °°Áö¸¸ À̵¿ Áß¿¡µµ °è¼Ó ¹ß»ýÇϱ⠶§¹®¿¡ ÃÖÃÊ µé¾î¿Â ½ÃÁ¡À» ¾Ë ¼ö ¾ø´Ù. Áï ¹æ±Ý µé¾î¿Â °ÍÀÎÁö ¾Æ´Ï¸é ¾Æ±îºÎÅÍ µé¾î¿Í¼ ¿òÁ÷ÀÌ°í ÀÖ´Â °ÍÀÎÁö ÆǺ°ÇÒ ¼ö ¾ø´Ù.
³ª°£ ½ÃÁ¡À» ¾Ë±â´Â ´õ ¾î·Æ´Ù. Ä¿¼°¡ ¿µ¿ª ¹Ù±ùÀ¸·Î ³ª°¡´Â ¼ø°£ MouseMove´Â ´õ ÀÌ»ó ¹ß»ýÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª MouseMove°¡ ¾È ¿Â´Ù°í Çؼ Ä¿¼°¡ ¹ÛÀ¸·Î ³ª°¬´Ù°í ´ÜÁ¤ÇÒ ¼ö ¾ø´Âµ¥ ÁøÂ¥ ³ª°£ °ÍÀÎÁö ¾Æ´Ï¸é ¾È ¿òÁ÷ÀÌ°í Âɱ׸®°í ¾É¾Æ ÀÖ´ÂÁö ºÐ°£ÇÒ ¹æ¹ýÀÌ ¾ø´Ù. ±×·¸´Ù°í Çؼ Ä¿¼°¡ ¾ðÁ¦ ³ª°¡´ÂÁö ¾Ë±â À§ÇØ °è¼Ó Ä¿¼¸¦ ĸóÇÏ°í ÀÖÀ» ¼öµµ ¾ø´Â ³ë¸©ÀÌ´Ù. ±×·¡¼ ¿î¿µÃ¼Á¦°¡ Ä¿¼¸¦ °¨½ÃÇϸç À̺¥Æ®¸¦ º¸³»ÁØ´Ù.
ÀÌ µÎ À̺¥Æ®´Â ÁÖ·Î ÄÁÆ®·ÑÀÇ ÇÖ »óŸ¦ Ç¥ÇöÇϱâ À§ÇØ »ç¿ëÇÑ´Ù. Ä¿¼°¡ À§¿¡ ÀÖÀ¸¸é °Á¶ÇÏ°í ¹Ù±ùÀ¸·Î À̵¿Çϸé Æò¹üÇÑ ¸ð¾çÀ¸·Î ¹Ù²ï´Ù(Hot Tracking). À¥ ºê¶ó¿ìÀúÀÇ ¹öÆ°À̳ª ºñÁÖ¾ó ½ºÆ©µð¿ÀÀÇ Åø¹Ù¸¦ ºÁµµ Ä¿¼°¡ À§¿¡ ÀÖÀ» ¶§¿Í ±×·¸Áö ¾ÊÀ» ¶§ÀÇ ¸ð¾çÀÌ ´Ù¸£´Ù.
ÀÏÁ¤ ½Ã°£ ¸Ó¹«¸¦ ¶§ ¹ß»ýÇÏ´Â MouseHover À̺¥Æ®´Â ÅøÆÁ Ãâ·Â¿¡ »ç¿ëÇÑ´Ù. ÅøÆÁÀº µé¾î¿À´Â Áï½Ã Ãâ·ÂµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó Àá½Ã ¸Ó¹µ°Å¸± ¶§ Ãâ·ÂµÇ¸ç Ä¿¼¸¦ µû¶ó°¡¸ç ¿òÁ÷¿©¼´Â ¾ÈµÈ´Ù. ¸¶¿ì½º°¡ ¸Ó¹µ ¸Ó¹µÇÏ´Â Àû´çÇÑ ½ÃÁ¡À» Á¤È®ÇÏ°Ô Á¦°øÇÏ´Â À̺¥Æ®°¡ MouseHoverÀÌ´Ù.
ÀÌ»óÀÇ À̺¥Æ®°¡ µµÀԵDZâ Àü¿¡´Â ŸÀ̸Ӹ¦ ¼³Ä¡ÇÏ°í ¸¶¿ì½º Ä¿¼ÀÇ À§Ä¡¸¦ ÁÖ±âÀûÀ¸·Î °¨½ÃÇÏ´Â Æú¸µ ±â¹ýÀ» »ç¿ëÇß¾ú´Ù. Àß µ¿ÀÛÇßÁö¸¸ ¹ø°Å·Ó°í ºÎ´ã½º·¯¿î ±â´ÉÀÌ´Ù. ÀÌÁ¦´Â ¿î¿µÃ¼Á¦°¡ Ä¿¼ÀÇ º¯È¸¦ ¾Ë·Á ÁֹǷΠÀ̺¥Æ®¸¸ Àß ¹ÞÀ¸¸é µÈ´Ù.
¸¶¿ì½º À̺¥Æ®´Â Àμö·Î ÁÂÇ¥¿Í ¹öÆ°ÀÇ »óŸ¦ Àü´ÞÇÏÁö¸¸ ´Ù¸¥ À̺¥Æ®´Â ±×·¸Áö ¾Ê´Ù. KeyDown À̺¥Æ®´Â Å°ÀÇ »óŸ¸ Àü´ÞÇÒ »Ó ¸¶¿ì½º °ü·Ã Á¤º¸´Â ¾ø´Ù. ¸¶¿ì½ºÀÇ ÁÂÇ¥¿Í ¹öÆ°ÀÇ »óŸ¦ Á¶»çÇÒ ¶§´Â ControlÀÇ MouseButtons, MousePosition ÇÁ·ÎÆÛƼ¸¦ »ç¿ëÇÑ´Ù. MouseButtons ¿°ÅÇüÀº ´·¯Áø ¹öÆ°ÀÇ Á¾·ù¸¦ Ç¥ÇöÇÑ´Ù.
¿°Å ¸â¹ö |
¼³¸í |
Left |
¿ÞÂÊ ¹öÆ°ÀÌ ´·¯Á® ÀÖ´Ù. |
Middle |
°¡¿îµ¥ ¹öÆ°ÀÌ ´·¯Á® ÀÖ´Ù. |
Right |
¿À¸¥ÂÊ ¹öÆ°ÀÌ ´·¯Á® ÀÖ´Ù. |
None |
¹öÆ°ÀÌ ´·¯Á® ÀÖÁö ¾Ê´Ù. |
XButton1 |
ù ¹ø° X ¹öÆ°ÀÌ ´·¯Á® ÀÖ´Ù. |
XButton2 |
µÎ ¹ø° X ¹öÆ°ÀÌ ´·¯Á® ÀÖ´Ù. |
MousePosition ÇÁ·ÎÆÛƼ´Â ¸¶¿ì½º Ä¿¼ÀÇ ÇöÀç À§Ä¡¸¦ Á¶»çÇÑ´Ù. ¸¶¿ì½º´Â ȸé Àü¿ªÀ» µ¹¾Æ ´Ù´Ï¹Ç·Î ȸé Á»ó´ÜÀ» ¿øÁ¡À¸·Î Çϴ ȸé ÁÂÇ¥¸¦ »ç¿ëÇÑ´Ù. ÀÛ¾÷¿µ¿ª ÁÂÇ¥·Î º¯È¯ÇÏ·Á¸é ControlÀÇ PointToClient ¸Þ¼µå¸¦ È£ÃâÇÑ´Ù. Control Ŭ·¡½º´Â ModifierKeys Á¤Àû ÇÁ·ÎÆÛƼ·Î Ctrl, Alt, Shift Á¶ÇÕÅ°ÀÇ »óŸ¦ Á¶»çÇÑ´Ù. Å°º¸µå ÀÌ¿ÜÀÇ À̺¥Æ®¿¡¼ Á¶ÇÕÅ°ÀÇ »óŸ¦ ¾Ë°í ½ÍÀ» ¶§ ÀÌ ÇÁ·ÎÆÛƼ¸¦ ÂüÁ¶ÇÑ´Ù.
Á¤º¸¸¦ Á¶»çÇÏ´Â ¹æ¹ýÀº ½±Áö¸¸ ÀÌ ÇÁ·ÎÆÛƼÀÇ ¼Ò¼ÓÀÌ ControlÀ̶ó´Â °ÍÀº ºñÁ÷°üÀûÀÌ´Ù. Å°º¸µå, ¸¶¿ì½º´Â ¸ðµç ÇÁ·Î±×·¥ÀÌ °øÀ¯ÇÏ´Â ½Ã½ºÅÛ Àü¿ªÀûÀÎ ÀåÄ¡À̸ç ÄÁÆ®·Ñ°ú´Â Á÷Á¢ÀûÀÎ °ü·Ã¼ºÀÌ ¾àÇÏ´Ù. Àü¿ªÀÇ °³³äÀÌ ¾ø´Ù º¸´Ï UI¿Í °¡±î¿î Control¿¡ Æ÷ÇÔ½ÃÄÑ µÎ¾ú´Ù. ¿î¿µÃ¼Á¦³ª ÄÄÇ»ÅÍ°¡ °´Ã¼ÁöÇâÀûÀÌÁö ¾Ê´Ù º¸´Ï ¾î¿ ¼ö ¾ø´Â ¾î»öÇÔÀÌ ÀÖ´Ù.