Конвертировал код из vb.net на c#.
private static Point MouseP = new Point(0, 0);
private bool Cap = false;
private int MoveHeight = 35;
//private pos = 0;
Rectangle MinBtn = new Rectangle(0, 0, 32, 25);
Rectangle CloseBtn = new Rectangle(33, 0, 65, 25);
int X;
int Y;
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
if (e.Button == MouseButtons.Left & new Rectangle(0, 0, Width, MoveHeight).Contains(e.Location) & X < Width - 53)
{
Cap = true;
MouseP = e.Location;
}
else
{
if (X > Width - 18 & X < Width - 8 & Y < 18 & Y > 8)
{
// FindForm.Close();
}
else if (X > Width - 36 & X < Width - 25 & Y < 18 & Y > 8)
{
if (FindForm.WindowState == FormWindowState.Maximized)
{
FindForm.WindowState = FormWindowState.Normal;
}
else
{
FindForm.WindowState = FormWindowState.Maximized;
}
}
else if (X > Width - 52 & X < Width - 44 & Y < 18 & Y > 8)
{
//FindForm.WindowState = FormWindowState.Minimized;
}
}
GraphicsMeph.State = GraphicsMeph.MouseState.Down;
Invalidate();
}
Не понятный FindForm
пытался заменить на this.WindowState
, но выводит ошибку, что WindowState
не существует
А так же:
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
if (Cap)
{
Parent.Location = MousePosition - MouseP;
}
X = e.Location.X;
Y = e.Location.Y;
Invalidate();
}
в строчке Parent.Location = MousePosition -
Оператор "-" не может применяться к операндам типа System.Drawing.Point
и System.Drawing.Point
Как активировать кнопки (свернуть/развернуть/закрыть
) программным способом, а так же решить проблему с перетаскиванием формы на неё в OnMouseMove
private Form FindForm()
{
Control current = this;
while (current != null && !(current is Form))
{
current = current.Parent;
}
return current as Form;
}
FindForm().WindowState = FormWindowState.Normal;
Vector v = Point.Subtract(MousePosition, MouseP);
Parent.Location = new Point(v.X, v.Y);
или проще
Parent.Location = new Point(MousePosition.X - MouseP.X, MousePosition.Y - MouseP.Y);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите, как происходит переход с более раннего EF на более новый и какие трудности при этом могут возникнуть?
unity выдает ошибку