Это проще использовать e.Location
точку в параметре Mouseclick
события:
Color c = ((Bitmap)pictureBox1.Image).GetPixel(e.X, e.Y);
Это предполагает, что на самом деле растровое изображение в PicturBox
Image
, не окрашенное поверх Control
..
Убедитесь, что мероприятие действительно подключено!
Чтобы установить щелкнул пиксель, скажем красный, вы бы получить Bitmap
из ПБ-х Image
и установить пикселы, затем переместите Bitmap
назад в ::
Bitmap bmp = (Bitmap)pictureBox1.Image;
bmp.SetPixel(e.X, e.Y, Color.Red);
pictureBox1.Image = bmp;
также в MouseClick
случае.
Если вы хотите получить больше знак, вы должны использовать Graphics
методы, может быть, как это:
using (Graphics G = Graphics.FromImage(pictureBox1.Image))
{
G.DrawEllipse(Pens.Red, e.X - 3, e.Y - 3, 6, 6);
}
Update: Чтобы объединить получение и установку вы можете написать:
Bitmap bmp = (Bitmap)pictureBox1.Image;
Color target = Color.FromArgb(255, 255, 255, 255);
Color c == bmp .GetPixel(e.X, e.Y);
if (c == target)
{
bmp.SetPixel(e.X, e.Y, Color.Red);
pictureBox1.Image = bmp;
}
else MessageBox.Show("Click only on white spots! You have hit " + c.ToString(),
"Wrong spot! ");
Ну , конечно, нет, вы не пишете код. Используйте событие MouseMove и bitmap.GetPixel() –