本人想做一个类似与AutoCAD中窗口底下的输出窗口,就是每操作一下,都会在输出窗口中显示操作。哪位大侠给指点一二。
本人试着做了一个大体思路如下:
(1)主窗口(form1吧)底下添加一个richtextbox
(2)当有click事件时,写入richtextbox,实现动态时时输出;
问题:
在主窗口(form1)中,直接采用richtextbox.selectedText 实现,但是在其他窗口(例如,form2,form3等)的click事件触发时显示到form1的richtextbox中。
注:本人采用把richtextbox的modifiers设成public 然后在form2中采用 form1 f1=new form1()实例化后,用f1.richtextbox.selectedText取出字符串时,在form1中的richtextbox 不显示

解决方案 »

  1.   

    窗体见数据传递,需要在richtextbox中建立可传输数据的代理// 传输用的代理
      public delegate void HasInfo(string info, int act);
        public partial class Form3 : Form
        {
            private event HasInfo _HasInfo;        public Form3(int sum)
            {
                InitializeComponent();
                progressBar1.Step = sum;
                _HasInfo += new HasInfo(Form3__HasInfo);        }        private void modi(string info, int act)
            {
                if (this.progressBar1.InvokeRequired || this.label1.InvokeRequired)
                {
                    HasInfo finfo = new HasInfo(modi);
                    this.Invoke(finfo, new object[] { info, act });
                }          //  Application.DoEvents();
                progressBar1.Value = act;
                label1.Text = info;
                if (act == progressBar1.Step)
                {
                    this.Close();
                }
     
            }
            void Form3__HasInfo(string info, int act)
            {            HasInfo finfo = new HasInfo(modi);
                 
                this.Invoke(finfo, new object[] { info, act });
            }
            //外部调用该方法写入数据
            public void ToInfo(string info, int act )
            {
                _HasInfo(info, act);
            }
     
      

  2.   

    跟写入log一样,只不过显示在richtextbox里了