Как сделать так, чтобы перемещение формы осуществлялось не только за верхнюю границу, а за любую часть данной формы?
Можно через обработчик событий, при зажатии мышки на форме и перемещении мыши изменять свойство положения формы, т. е. прибавлять к координатам формы координаты смещения мыши, это если вам не подойдет вариант с WinAPI
Спасибо всем. Пройдя по ссылке Руслана Артамонова выбрал этот варинат. Все красиво отрабатывает:
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HTCAPTION = 0x2;
[DllImport("User32.dll")]
public static extern bool ReleaseCapture();
[DllImport("User32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
void Form_Load(object sender, EventArgs e)
{
this.MouseDown += new MouseEventHandler(Form_MouseDown);
}
void Form_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
}
}
Опуская некоторые детали форма стала выглядеть вот так. С любого места формы, кроме контролов, можно перетащить на экране.
Самый простой способ сделать это без использования WinApi, примерно такой (перетаскиваем за Label):
int? x, y;
private void label1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if (x == null || y == null)
{
x = e.X;
y = e.Y;
}
else
{
Left += e.X - (int)x;
Top += e.Y - (int)y;
}
}
else
{
x = null;
y = null;
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Форма и код который я пишу находиться в разных папках Код(в папке нет той формы который указываю):
Можно ли при нажатии на "Esc" переместить плавно форму в верхний левый угол рабочего экрана? Это как перетащить мышьюСпасибо
Не могу загрузить изображение в БДВыдает ошибку "Необходимо загрузить изображение", то есть он уже выдает ошибку в первом условии следующего...
Есть такая логика поиска простого числа