+ -
当前位置:首页 → 问答吧 → 求助:DragDrop 注册失败。 form.Show()时弹出

求助:DragDrop 注册失败。 form.Show()时弹出

时间:2011-12-10

来源:互联网

希望实现的功能:
某窗体x在主窗体mainform中,最多显示一个实例
当用户点击两次时,激活已经存在的窗体实例。

代码如下

C# code

public static CreateProjects UniqueForm = null;//判断窗口的唯一性
private CreateProjects(Form p)
        {
            InitializeComponent();
            this.MdiParent = p;
        }
/// <summary>
        /// 显示此Form,确保此form只可以运行一个实例
        /// </summary>
        public static CreateProjects ShowUniqueForm(Mainform p)
        {

                // Init static form object
                if (UniqueForm == null || UniqueForm.IsDisposed == true)//新建窗体不存在
                {
                    // Create new form
                    UniqueForm = new CreateProjects(p);
                    UniqueForm.Show();
                //    Thread thread = new Thread(new ThreadStart(delegate() { UniqueForm.ShowDialog(); }));
                //    thread.SetApartmentState(ApartmentState.STA);
                //    thread.Start();
                }
                return UniqueForm;
           
        }

主窗体中调用代码:
 CreateProjects.ShowUniqueForm(this);

运行时,在UniqueForm.Show();一行,弹出错误:求助:DragDrop 注册失败。
已经查过很多帖子,按照大家指示的方法,在Main()函数前加了 [STAThread],但是问题依旧
请问如何解决处理

作者: fanrong1985   发布时间: 2011-12-10


上图

作者: fanrong1985   发布时间: 2011-12-10

作者: fanrong1985   发布时间: 2011-12-10

自己顶顶,别沉了

作者: fanrong1985   发布时间: 2011-12-10

不懂的路过~

作者: wbriver8   发布时间: 2011-12-11

你应改判断它的parentform是否存在吧

作者: ssp2009   发布时间: 2011-12-11

相关阅读 更多