首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开子窗体时出现错误

打开子窗体时出现错误
EN

Stack Overflow用户
提问于 2012-04-07 12:51:22
回答 1查看 239关注 0票数 0

我将使用telerik桌面控件制作桌面应用程序。我的主要表单代码是:

代码语言:javascript
复制
 public partial class MainForm3 : Telerik.WinControls.UI.RadForm
       {
        private string ISadmin = string.Empty;
        private string Customer_ID = string.Empty;
        private string sLanguage_Code = "en-US";
        private string Contact_ID = string.Empty;
        public MainForm3(string Contact_IDa, string Customer_IDa, string ISadmina)
        {
            InitializeComponent();

            this.Contact_ID = Contact_IDa;
            this.Customer_ID = Customer_IDa;
            this.ISadmin = ISadmina;  
        }
        private void MainForm3_Load(object sender, EventArgs e)
                {
                    this.IsMdiContainer = true;
                    this.radDock1.AutoDetectMdiChildren = true;
                }
        private void radMenuItem1_Click(object sender, EventArgs e)
        {
            FormThree formthree= new FormThree ();
            formthree.MdiParent = this;
            formthree.Show();
        }

    }

字符串Contact_IDa、字符串Customer_IDa、字符串ISadmina来自登录页面。

登录页代码:

代码语言:javascript
复制
if(login success){

//setup necessary values 



 System.Threading.Thread t = new System.Threading.Thread(new  System.Threading.ThreadStart(ThreadProc));
 t.Start();
 this.Close();

}

public void ThreadProc()
        {
            Application.Run(new MainForm3(Contact_ID, Customer_ID, IsAdmin));
        }

码和FormThree码;

代码语言:javascript
复制
public partial class FormThree : Telerik.WinControls.UI.RadForm
           {
        public FormThree ()
        {
            InitializeComponent(); 
            splitPanel1.AllowDrop = true;
            splitPanel1.DragEnter += splitPanel1_DragEnter;
            splitPanel1.DragDrop += splitPanel1_DragDrop;
        }
        private void splitPanel1_DragDrop(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                string[] filePaths = (string[])(e.Data.GetData(DataFormats.FileDrop));

                foreach (string fileLoc in filePaths)
                {
                    // Code to read the contents of the text file
                    if (File.Exists(fileLoc))
                    {
                        using (TextReader tr = new StreamReader(fileLoc))
                        {
                            string Name = Path.GetFileName(fileLoc);
                            string extention = Path.GetExtension(fileLoc);
                            MessageBox.Show("Name:" + Name + " </br>Extention:" + extention);
                            //MessageBox.Show(tr.ReadToEnd());
                        }
                    }
                }
            }
        }

        private void splitPanel1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.Copy;
            }
            else
            {
                e.Effect = DragDropEffects.None;
            }
        }

        private void FormThree_Load(object sender, EventArgs e)
        {
        }
    }

现在的问题是,当我点击"radMenuItem1“加载我的表单FormThree时,它会说"DragDrop注册没有成功”。为什么和如何解决这个问题.

EN

回答 1

Stack Overflow用户

发布于 2012-04-07 13:11:41

在每个应用程序启动时启动您的应用程序。

在您的主要方法中:

代码语言:javascript
复制
Application.Run(new MainForm3()); 

在构造函数中这里没有参数,然后在MainForm3构造函数中(在InitializeComponent之前)执行登录操作,打开一个专用的模式表单来获取继续运行所需的登录凭据。

如果登录失败,可以通知用户并使用Application.Exit()关闭应用程序。如果登录成功,请读取MainForm3所需的值。不需要启动不同的线程

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10054641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档