以上示例,禁止黑框弹出
时间: 2024-12-13 07:24:05 浏览: 5
在Windows应用程序中,如果你希望避免使用默认的黑色边框(标题栏、菜单等)全屏显示一个窗口,你可以使用`FormBorderStyle`属性设置成`None`,以及`ControlBox`属性设为`false`。同时,可以使用`CreateParams`方法来创建无边框的窗口。以下是C# WinForms的一个示例:
```csharp
using System.Windows.Forms;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.FormBorderStyle = FormBorderStyle.None; // 设置窗口边框为无
this.MaximizeBox = false; // 禁止最大化
this.MinimizeBox = false; // 禁止最小化
this.ControlBox = false; // 禁止控制图标
}
[DllImport("user32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
// 使用DPI-awareness API调整窗口大小
if (!DesignTime && DisplayDevice.GetDeviceCaps(DisplayDevice.DpiCap) > 0)
{
SetWindowDisplayMode(SystemParameters.PrimaryScreenWidth, SystemParameters.PrimaryScreenHeight);
}
// 异步显示窗口
ShowWindowAsync(this.Handle, SW_SHOWDEFAULT); // SW_SHOWDEFAULT相当于SW_SHOWNORMAL
}
private void SetWindowDisplayMode(int width, int height)
{
var rect = new Rectangle(0, 0, width, height);
AdjustWindowRect(ref rect, FormBorderStyle.None, false);
ClientSize = rect.Size;
}
}
```
在这个例子中,`ShowWindowAsync`函数用于异步地将窗口显示出来,`SetWindowDisplayMode`则用于根据设备像素比(DPI)自动调整窗口大小。
阅读全文