
表單代碼:
public partial class MainFrame : Form
{
private static XmlDocument xmlDoc = new XmlDocument();
public MainFrame()
{
InitializeComponent();
}
GetTime dt = new GetTime();
public void start()
{
readLog("System Start Running......\n");
readLog("資料庫連接成功......\n");
AutoProcessThread autopt = new AutoProcessThread();
Thread td = new Thread(autopt.run);
//運行一個cs檔案中的方法
td.Start();
}
public void readLog(string log)
{
string time = dt.dateTime();
textBox1.AppendText(time + log + "\n");
}
}
}
class AutoProcessThread
{
public void run()
{
MainFrame mf= new MainFrame();
mf.readLog("進入autoProcess------run");
}
}
那么問題來了,為什么表單中呼叫readLog方法就能顯示在textBox中,而其它cs檔案呼叫 mf.readLog("進入autoProcess------run") 沒有顯示在表單的textBox上呢?
uj5u.com熱心網友回復:
有人給個解答嗎
uj5u.com熱心網友回復:
因為你沒有showDialog。class AutoProcessThread
{
public void run()
{
MainFrame mf= new MainFrame();
mf.readLog("進入autoProcess------run");
mf.showDialog();
}
}
uj5u.com熱心網友回復:
日志不多,就做一個定時器刷吧。string s = File.ReadAllText(日志檔案名);
if (s != textBox1.Text)
textBox1.Text = s;
uj5u.com熱心網友回復:
好家伙 直接進入無限回圈彈窗中了
uj5u.com熱心網友回復:
public void readLog(string log)
{
string time = dt.dateTime();
this.Invoke(new Action(() =>
{
textBox1.AppendText(time + log + "\n");
}));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/269037.html
標籤:C#
上一篇:C# 可以實作這種功能嗎?
下一篇:關于視窗繼承,子視窗無法顯示問題
