首先,我很抱歉,即使有很多給定的主題,可能與我的問題有關,但我無法弄清楚如何解決我的問題..C#使用另一個線程控制窗體,也防止複製窗體
它只是在編碼中使用的大多數單詞對我來說都是新的。 我真的需要你的指導傢伙.. =(
到我的問題..
我有2種形式即時我的項目。 在Form1充當我的登錄屏幕 和窗口2是,如果將打開用戶登錄正確
使用UDP作爲我的連接插座。我做了一個簡單的UDPlistener 一個定時器內(原因是因爲如果我不關閉它,如果那裏有什麼可看,它只是 我的程序掛起IM,並仍然在等待消息)
注:我的UDP監聽被這樣
Thread thread1 = new Thread(UDPListener.StartListener);
thread1.SetApartmentState(ApartmentState.STA);
Thread.Sleep(100);
thread1.TrySetApartmentState(ApartmentState.STA);
thread1.Start();
當服務器程序向我發送信號,打開窗口2 現在的問題發生在不同的線程運行..
問題是.. form2出現..但form1沒有隱藏或可見= false; (Form1中需要能夠做到這一點)
即時通訊做的時候我嘗試顯示窗口2並隱藏form1的 注意此代碼:還有另外一個問題是(不是很確定)..我發現它只是複製形式
Form1 f1 = new Form1();
Form2 f2 = new Form2();
f1.Command("009");
f1.MiniTicker.Enabled = false; //need to do this, cant do this without putting Form1 f1 = new Form1();
Login.TBOption.showTaskBar();
TaskbarHide.Taskbar.Hide();
f1.CoreAds.Enabled = false; //same here
f1.Visible = false;
f1.Hide();
f1.Invoke(
(MethodInvoker)(() =>
{
new TimerMode().Show();
}));
f1.Invoke(
(MethodInvoker)(() =>
{
new MainForm().Hide();
}));
最後請注意:以後我上面運行..在Form1就像收盤代碼,但之後它再次打開......
請幫我解決我的問題。我要完成我的論文項目=(
即時通訊仍然遇到這個問題.. =( – Katherina 2011-05-12 04:46:54
)作爲編碼實踐的一個問題,命名Form1和Form2的形式並不明智,而是給它們一個描述性的名稱,爲什麼不使用LoginForm和MainForm(或者更具描述性的) – Martijn 2011-05-12 14:35:24