Событие PictureBox.Click
действительно вызывается, и я подозреваю, что код в вашем обработчике событий работает точно так, как ожидалось.
Проблема в том, что все, что вы делаете внутри этого метода обработчика событий, это установказначение переменной (flagarrow
). Вы не сделали ничего, что привело бы к перерисовке элемента управления PictureBox
. Его событие Paint
никогда не вызывалось, и поэтому его внешний вид остается неизменным.
Исправлениепросто: бросить вызов метода Invalidate
. Это заставит элемент управления PictureBox
перерисовать себя.И пока мы работаем над этим, вы можете также немного очистить свой код.
Измените код в обработчике событий Click
следующим образом:
private void pictureBox1_Click(object sender, EventArgs e)
{
flagarrow = !flagarrow;
pictureBox1.Invalidate();
}