19-3-5.¸¶¿ì½ºÀÇ µé°í³² °ü¸®

´ÙÀ½ ¼¼ À̺¥Æ®´Â ÄÁÆ®·Ñ ¿µ¿ªÀ¸·Î ¸¶¿ì½º Ä¿¼­°¡ µé¾î¿À°Å³ª ³ª¿Ã ¶§, ¶Ç´Â ÄÁÆ®·Ñ ¿µ¿ª ¾È¿¡¼­ Ä¿¼­°¡ µ¹¾Æ´Ù´Ò ¶§ ¹ß»ýÇÑ´Ù.

 

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¿¡ Æ÷ÇÔ½ÃÄÑ µÎ¾ú´Ù. ¿î¿µÃ¼Á¦³ª ÄÄÇ»ÅÍ°¡ °´Ã¼ÁöÇâÀûÀÌÁö ¾Ê´Ù º¸´Ï ¾î¿ ¼ö ¾ø´Â ¾î»öÇÔÀÌ ÀÖ´Ù.