Я новичок в разработке приложений Windows Forms C#.Как определить щелчок мышью на нарисованном изображении?
Я создал форму с панелью, в которой пользователь может нарисовать на ней изображение. Как проверить, нажато ли изображение?
Я новичок в разработке приложений Windows Forms C#.Как определить щелчок мышью на нарисованном изображении?
Я создал форму с панелью, в которой пользователь может нарисовать на ней изображение. Как проверить, нажато ли изображение?
Просто дважды щелкните на панели изображений формы (или на любом объекте, для которого вы хотите обнаружить события клика), и 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
}
}
В режиме конструктора щелкните правой кнопкой мыши на панели, выберите Свойства. В окне «Свойства» выберите СОБЫТИЯ (значок «Молния»). Двойной щелчок по щелчку, то этот код будет сгенерирован:
private void panel1_Click(object sender, EventArgs e)
{
//--what to do when user clicks on panel--
MessageBox.Show("Clicked");
}
спасибо, но вот я рисую изображение на панели, теперь, если я сделал щелчок мыши, как определить, было ли это на изображении или нет (я имею в виду, если клик был сделан на изображении или на остальной части панель) помогите мне еще дальше, или подскажите – user2074911
, какой тип изображения может быть нарисован пользователем? –
iam drawing a png image на apanel, теперь я хочу проверить на клик мышкой только на изображении – user2074911
спасибо, но вот я рисую изображение на панели, теперь если я сделал щелчок мыши, как определить, было ли это на изображение или нет (я имею в виду, если клик был сделан на изображении или на остальной части панели), помогите мне дальше или по подсказке – user2074911
@ user2074911 Итак, изображение не покрывает всю панель? В этом случае, как насчет того, будет ли позиция мыши находиться в пределах измерения изображения? Предполагая, что изображение рисуется в позиции (20,10) и имеет размер (200 100); 'if (e.X> = 20 && e.Y> = 10 && e.X <20 + 200 && e.Y <10 + 100)'. – Nolonar