有如下代码:   public partial class Form1 :MyForm
    {        public Form11()
        {
            InitializeComponent();
        }
    }
   public class MyForm : Form
    {
        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams parameter = base.CreateParams;
                parameter.ExStyle |= WS_EX_LAYERED;
                return parameter;
            }
        }
        const int WS_EX_LAYERED = 0x80000;
    }当转到Form1的视图设计器时,发生错误,说是“创建窗口句柄时出错”

解决方案 »

  1.   

    public class MyForm : Form
    {
        protected override CreateParams CreateParams
        {
            get
            {
                new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
                CreateParams parameter = base.CreateParams;
                parameter.Style |= 0x80000;
                return parameter;
            }
        }
    }
      

  2.   

    public Form11()
            {
                InitializeComponent();
            }应该是
    public Form1()
            {
                InitializeComponent();
            }
    吧!!!!
      

  3.   

    首先是
     public Form1() // 不是Form11
            {
                InitializeComponent();
            }另外
    public class MyForm : Form
    类要写在public partial class Form1 :MyForm
    类前面
      

  4.   

    楼主要解决的问题是:如何制作透明窗体----下面这个类,为什么出错public class MyForm : Form
    {
        protected override CreateParams CreateParams
        {
           get
           {
                  CreateParams parameter = base.CreateParams;
                  parameter.ExStyle |= WS_EX_LAYERED;
                  return parameter;
            }
        }
        const int WS_EX_LAYERED = 0x80000;
    }
      

  5.   

    4楼的正确,应该这样public class MyForm : Form
    {
        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams cParms = base.CreateParams;
                cParms.ExStyle |= 0x00080000; // WS_EX_LAYERED
                return cParms;
            }
        }
    }public partial class Form1 : MyForm
    {
        public Form1()
        {
            InitializeComponent();
        }}
      

  6.   

    lzsh0622 说得对,我是要解决的是 透明窗体被重载时发生的错误
    对于目前的状况,7楼正解
    但是如果两个类处于不同的文件呢?也就是说有这样两个文件
    文件1定义一个类:using using System.Runtime.InteropServices;
    public class TansparentForm:Form
    {
     protected override CreateParams CreateParams
        {
            get
            {
                CreateParams cParms = base.CreateParams;
                cParms.ExStyle |= 0x00080000; // WS_EX_LAYERED
                return cParms;
            }
        }
    //其它完成透明窗体的代码此处略
    }文件2:public class Form1:TansparentForm
    {}这样的话,如果切换到Form1的视图设计时,还是会报错!又该如何解决呢!
      

  7.   

    这样试试:把文件1做到类库中 File1.DLL,在项目中,添加对File1.DLL的引用.
      

  8.   

    加个base.InitializeComponent(); 
    InitializeComponent();
    前加个