Есть программа по типу игры лабиринта, реализована в windows forms. Необходимо сделать так, чтобы не весь лабиринт был виден сразу (как на рисунке). Был написан код, чтобы было видно только часть, а остальная была покрыта чёрной областью. Но при перемещении мыши программа сильно лагает (другие её элементы). Для буферизации свойству формы DoubleBuffered прописал значение true. Подскажите, как нужно изменить код чтобы избежать лагов, спасибо.
Код:
protected override void OnLoad(EventArgs e) // этот участок отвечает за черный круг
{
base.OnLoad(e);
SetEventHandlers(this);
}
private void SetEventHandlers(Control ct)
{
ct.Paint += PaintControl;
ct.MouseMove += (o, e) => Invalidate(true);
foreach (Control item in ct.Controls)
{
SetEventHandlers(item);
}
}
int Radius = 100;
void PaintControl(object sender, PaintEventArgs e)
{
//context = BufferedGraphicsManager.Current;
//bufer = context.Allocate(Graphics, Form.DisplayRectangle);
e.Graphics.SmoothingMode = SmoothingMode.None;
Control ct = (Control)sender;
Point ct_position = ct.PointToScreen(new Point(0, 0));
Point client_position = this.PointToScreen(new Point(0, 0));
int shiftX = ct_position.X - client_position.X;
int shiftY = ct_position.Y - client_position.Y;
Point p = PointToClient(MousePosition);
p.Offset(-shiftX, -shiftY);
using (GraphicsPath path = new GraphicsPath())
{
path.AddRectangle(new Rectangle(-shiftX, -shiftY, ClientSize.Width, ClientSize.Height));
path.AddEllipse(p.X - Radius, p.Y - Radius, 2 * Radius, 2 * Radius);
e.Graphics.FillPath(Brushes.Black, path); // этот участок отвечает за черный круг
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть проблема с выполнением параметризованного запроса в c#Вот мой код:
Предположим, есть коллекция вида List<string>, в ней очень большое число записейПользователь должен начинать вводить слово, а программа должна...
вот есть у меня список в xml файле, я по нему прохожусь и вывожу в textbox, но что если нужно добавить/удалить элемент в xml файле? как через код это...