我下面有代码,当从第二个表单更新Form1中的对象时,该代码可以工作。但是,当尝试从Form1更新Form2中的对象时,它是否无法正常工作?
Form 2代码;
namespace testProject
{
public partial class comPortWindow : Form
{
public static comPortWindow form = null;
public comPortWindow()
{
InitializeComponent();
}
public static void comportLogText(String text)
{
if (form != null)
form.updateRichTextBox1(text);
}
private void updateRichTextBox1(String text)
{
richTextBox1.Text = text + " : " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff") + "\r\n" + richTextBox1.Text;
richTextBox1.ScrollToCaret();
}
}
}
Form 1代码;
comPortWindow comPortWindow = new comPortWindow();
comPortWindow.Show();
comPortWindow.comportLogText("hello");
显示表格2,但是富文本框中没有测试。
以另一种方式工作,因此可能与Form1启动时不存在Form2有关。
答案 0 :(得分:0)
Form 2代码:
#prepare some data to plot
set table "m.dat"
plot [0:10] x+3*sin(x)
unset table
#calculate x range
xmin=1e10
xmax=-1e10
add_this_x(x)=((x<xmin)?xmin=x:0,(x>xmax)?xmax=x:0,1/0)
plot "m.dat" u 1:(($2>=4&&$2<=6)?add_this_x($1):1/0)
# do the plot
plot [xmin:xmax] "m.dat" u 1:(($2>=4&&$2<=6)?$2:1/0) w lp
Form 1代码:
public partial class comPortWindow : Form
{
public comPortWindow()
{
InitializeComponent();
}
public void comportLogText(string text)
{
updateRichTextBox1(text);
}
private void updateRichTextBox1(string text)
{
richTextBox2.Text = text + " : " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff") + "\r\n" + richTextBox2.Text;
richTextBox2.ScrollToCaret();
}
}