本人想做一个类似与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)主窗口(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 不显示
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);
}