2013-02-15 3 views

ответ

2

Просто дважды щелкните на панели изображений формы (или на любом объекте, для которого вы хотите обнаружить события клика), и Visual Studio автоматически сгенерирует событие OnClick(). Само собой разумеется, я говорю о дизайнере форм, а не о фактической форме, которую вы увидите при тестировании своего кода.

В качестве альтернативы вы можете указать, какие события вы хотите реализовать через свойства объекта. Таким образом, вы также можете реализовать OnKeyDown() или OnFocus() или любые другие события.

Редактировать: Если изображение не покрывает всю панель, вам нужно будет проверить, находится ли положение мыши в пределах размера изображения. Если предположить, что изображение рисуется в положении (imgOriginX, imgOriginY) и имеет размер (imgWidth, imgHeight):

// Fires, when user clicks on panel 
private void panel_Click(object sender, EventArgs e) 
{ 
    // Cast to MouseEventArgs 
    MouseEventArgs mouse = (MouseEventArgs)e; 

    // If mouse is within image 
    if (mouse.X >= imgOriginX && mouse.Y >= imgOriginY && mouse.X < imgOriginX + imgWidth && mouse.Y < imgOriginY + imgHeight) 
    { 
     // do something here 
    } 
} 
+0

спасибо, но вот я рисую изображение на панели, теперь если я сделал щелчок мыши, как определить, было ли это на изображение или нет (я имею в виду, если клик был сделан на изображении или на остальной части панели), помогите мне дальше или по подсказке – user2074911

+0

@ user2074911 Итак, изображение не покрывает всю панель? В этом случае, как насчет того, будет ли позиция мыши находиться в пределах измерения изображения? Предполагая, что изображение рисуется в позиции (20,10) и имеет размер (200 100); 'if (e.X> = 20 && e.Y> = 10 && e.X <20 + 200 && e.Y <10 + 100)'. – Nolonar

3

В режиме конструктора щелкните правой кнопкой мыши на панели, выберите Свойства. В окне «Свойства» выберите СОБЫТИЯ (значок «Молния»). Двойной щелчок по щелчку, то этот код будет сгенерирован:

private void panel1_Click(object sender, EventArgs e) 
    { 
     //--what to do when user clicks on panel-- 
     MessageBox.Show("Clicked"); 
    } 
+0

спасибо, но вот я рисую изображение на панели, теперь, если я сделал щелчок мыши, как определить, было ли это на изображении или нет (я имею в виду, если клик был сделан на изображении или на остальной части панель) помогите мне еще дальше, или подскажите – user2074911

+0

, какой тип изображения может быть нарисован пользователем? –

+0

iam drawing a png image на apanel, теперь я хочу проверить на клик мышкой только на изображении – user2074911

Смежные вопросы