formborderstyle =none后,在win2000系统下,任务栏中的图标会消失。
有时在软件打开时有,但是程序中弹出openfiledialg窗口之后,图标就会消失。之后再也不出现了。请问怎么解决。让他一直有图标,xp系统下没这个问题。

解决方案 »

  1.   

    没有大多数人想的简单,但是也不是非常复杂
     [DllImport("user32.dll", EntryPoint = "GetWindowLong", CharSet = CharSet.Auto)]
            public static extern int GetWindowLong(HandleRef hWnd, int nIndex);
            [DllImport("user32.dll", EntryPoint = "SetWindowLong", CharSet = CharSet.Auto)]
            public static extern IntPtr SetWindowLong(HandleRef hWnd, int nIndex, int dwNewLong);
      public void ShowIconInWin2k()
            {
                int GWL_STYLE = (-16);
                //int WS_CAPTION = 0xC00000;
                int WS_SYSMENU = 0x00080000; // 系统菜单
                //int WS_MAXIMIZEBOX = 0x10000;
                int WS_MINIMIZEBOX = 0x20000; // 最大最小化按钮
                //int WM_CONTEXTMENU = 0x007b;             int windowLong = (GetWindowLong(new HandleRef(this, this.Handle), GWL_STYLE));
                SetWindowLong(new HandleRef(this, this.Handle), GWL_STYLE, windowLong | WS_SYSMENU | WS_MINIMIZEBOX);
            }