对于普通Form,设了ControlBox = false;右键就变灰了。
可是我现在用的一个Form相当于是一个没有标题栏的提示画面。
它的ControlBox 已经是false了,可右键任务栏其他都灰了,就关闭不灰
怎么办呢?

解决方案 »

  1.   

    你可以把最大化和最小化的禁用掉,把关闭留着啊
    this.ControlBox = true;
    this.MaximizeBox = false;
    this.MinimizeBox = false;
      

  2.   

    你可以把提示栏去掉:Form.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
      

  3.   

    回fuyiyong(戴眼镜的猫):我需要把关闭禁了。
    回bumm(......) :FormBorderStyle是需要的。
      

  4.   

    可以把Form的鼠标右击事件屏蔽掉:写一个消息过滤类:
    public class MessageFilter : IMessageFilter 
    {
       public bool PreFilterMessage(ref Message m) 
       {
          //0xA5 当用户按下鼠标右键同时光标又在窗口的非客户区时发送此消息
          if (m.Msg == 0xA5)  
    {
    return true;
    }
    return false;
        }在Form_Load事件中添加代码:
    MessageFilter filter = new MessageFilter();
    Application.AddMessageFilter(filter);
      

  5.   

    using System.Runtime.InteropServices;private const int MF_BYPOSITION=0x400;
    private const int MF_DISABLED=0x2;
    [DllImport("user32", EntryPoint="GetSystemMenu")]
    private static extern IntPtr GetSystemMenu (
    IntPtr hwnd,
    bool bRevert
    );
    [DllImport("user32", EntryPoint="EnableMenuItem")]
    private static extern int EnableMenuItem (
    IntPtr hMenu,
    int wIDEnableItem,
    int wEnable
    );hwnMenu = GetSystemMenu(this.Handle,false);
    EnableMenuItem(hwnMenu,6,MF_BYPOSITION|MF_DISABLED);
      

  6.   

    回bumm(......) :感谢你的帮助,不过不行。我需要任务栏上的右键关闭不可用。
    另外,如果有其它方法护短,尽量不用消息驱动,因为这样只适用于Windows
    回sxlfybb(房客):也同样感谢你,能再详细点吗?