C# WinForms: 使用 Anchor 属性实现 Panel 控件填充整个窗体
如果你想要让 'Panel' 控件填充整个窗体,并且不需要设置为透明,可以使用 'Anchor' 属性来实现。以下是示例代码:
using System;
using System.Windows.Forms;
namespace WindowsFormsApp
{
public partial class MainForm : Form
{
private bool isDragging = false; // 是否正在拖动
private int mouseX, mouseY; // 鼠标在窗体上的相对位置
public MainForm()
{
InitializeComponent();
// 让 panelDrag 控件填充整个窗体
panelDrag.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
// 将 panelDrag 控件的 Dock 属性设置为 Fill
panelDrag.Dock = DockStyle.Fill;
}
private void panelDrag_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
isDragging = true;
mouseX = e.X;
mouseY = e.Y;
}
}
private void panelDrag_MouseMove(object sender, MouseEventArgs e)
{
if (isDragging)
{
this.Left += e.X - mouseX;
this.Top += e.Y - mouseY;
}
}
private void panelDrag_MouseUp(object sender, MouseEventArgs e)
{
isDragging = false;
}
}
}
在以上示例代码中,我们将 'panelDrag' 控件的 'Anchor' 属性设置为 'AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right',以使其始终填充整个窗体。
然后,我们将 'panelDrag' 控件的 'Dock' 属性设置为 'Fill',以使其填充整个窗体可用区域。
通过以上代码,你可以实现无边框窗体中覆盖整个窗体的多个 'TableLayoutPanel' 控件,同时让一个新的 'Panel' 控件填充整个窗体,并通过控制该 'Panel' 控件的鼠标事件来实现拖动功能。当鼠标按下并拖动 'Panel' 控件时,整个窗体都会跟随鼠标移动。请确保将示例代码中的 'panelDrag' 替换为你实际使用的 'Panel' 控件的名称,并在窗体设计器中将 'MouseDown'、'MouseMove' 和 'MouseUp' 事件与对应的事件处理程序关联起来。
原文地址: http://www.cveoy.top/t/topic/lQm 著作权归作者所有。请勿转载和采集!