C#如何禁用右上角的叉

 我来答
20050crd
推荐于2016-09-26 · 超过26用户采纳过TA的回答
知道答主
回答量:124
采纳率:0%
帮助的人:70.2万
展开全部
窗口样式中的ControlBox选为False就可以去掉右上角的叉

下面是一个简单的例子,调用API实现了禁用关闭按钮的功能

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace winFormTest
{
public partial class Form2 : Form
{
[DllImport("USER32.DLL")]
public static extern int GetSystemMenu(int hwnd, int bRevert);
[DllImport("USER32.DLL")]
public static extern int RemoveMenu(int hMenu, int nPosition, int wFlags);

const int MF_REMOVE = 0x1000;

const int SC_RESTORE = 0xF120; //还原
const int SC_MOVE = 0xF010; //移动
const int SC_SIZE = 0xF000; //大小
const int SC_MINIMIZE = 0xF020; //最小化
const int SC_MAXIMIZE = 0xF030; //最大化
const int SC_CLOSE = 0xF060; //关闭

public Form2()
{
InitializeComponent();
}

private void Form2_Load(object sender, EventArgs e)
{
int hMenu;
hMenu = GetSystemMenu(this.Handle.ToInt32(), 0);
RemoveMenu(hMenu, SC_CLOSE, MF_REMOVE);
}

}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gushiaoke
2008-01-01
知道答主
回答量:25
采纳率:0%
帮助的人:14万
展开全部
把RemoveMenu(hMenu, SC_CLOSE, MF_REMOVE); 里的MF_REMOVE换成SC_RESTORE
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QQ3794717
2008-01-01 · TA获得超过316个赞
知道小有建树答主
回答量:806
采纳率:0%
帮助的人:394万
展开全部
禁用了,怎么关闭
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式