台灣最大程式設計社群網站
線上人數
1599
 
會員總數:240909
討論主題:186668
歡迎您免費加入會員
討論區列表 >> VB.NET >> 請問如何停止 Showdialog
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問如何停止 Showdialog
價值 : 50 QP  點閱數:200 回應數:10

樓主

P陳
中級專家
5480 141
4725 1120
發送站內信

各位好
當我在 Form1 中執行 Form2.showdialog ,開啟了FORM2
Form2 執行 10~30秒 後會停止並回到 Form1
(Form2 是隱藏不顯示的,故無法按 結束)

如果我在5秒時反悔了,請問如何在FORM1 中將,Form2 停掉
因為 Form1 內的所有事件通通無法觸發了。






搜尋相關Tags的文章: [ 停止 showdialog ] ,
本篇文章發表於2017-09-28 08:35
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

city
檢舉此回應
Form2裡面加入一個NotifyIcon

這樣可行嗎?
本篇文章回覆於2017-09-28 09:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

小魚
檢舉此回應
Form2 是隱藏的
那要 Form2 做什麼?
直接在Form1進行就好了啊
本篇文章回覆於2017-09-28 12:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

P陳
檢舉此回應
TO 小魚:
比如說 Form1 為主程式 在撥放影片
Form2 要說一段話 (每秒約3字 不一定長度) Form3或顯示一張圖片 (10秒) Form4 顯示一張會動的圖片
當FORM2執行說話時可設影片是否要暫停 , Form3或顯示一張圖片 (10秒 長度不一定)
form2 是不顯示的

想了很久
最後用 ShowDialog 來解決這些不同步的問題,可以大幅度減輕FORM1的程式。
現在也可以執行了。
只是目前卡在 如果 form2.showdialog 在講話中,在FORM1 沒辦法將講話關掉。

TO:city
再來時間點很重要,用 NotifyIcon 要再移動滑鼠,將 FORM2 打開,再點關閉,到暫停就好幾秒了。影片要另外處理。


------------------------------------------------
目前最大的問題是 form1中執行 form234.showdialog後 FORM1 的所有事件,通通無法觸發,也就無法通知 form2 form3 form4 了。




本篇文章回覆於2017-09-28 19:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
不錯的參考

Ader Chen
檢舉此回應
此案例可以用 Form.Show 取代 ShowDialog 嗎?
本篇文章回覆於2017-09-28 19:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

P陳
檢舉此回應
一開始是用 SHOW 多個元件,時間長短不一,開始結束一個沒算好,就打保架了。
..................
後來才改成用 showdialog 處理,form 2 3 4 他們自行處理,該開就開 該關就關
form1 只要控制 form 2 3 4 的啟動 及長度 即可
---------------------------------------------------------
剛才在 FORM1 找到一個事件,當我在 form2.ShowDialog 後還可以運作的事件了,
那就是 Timer

正在測要如何結合來使用 (可能是滑鼠游標位置)



本篇文章回覆於2017-09-29 15:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

小魚
檢舉此回應
你有試過使用執行緒嗎?
還有打架的原因是什麼?
本篇文章回覆於2017-09-29 19:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

P陳
檢舉此回應
如 40秒時 有一段話 要講15秒
在第 43秒 要秀一張圖片 5秒


影片有的要暫停 有的不暫停 FORM1的邏輯有點複雜
用 ShowDialog FORM1 邏輯相對的就簡單多了
打架就是這個意思
------------------------------
執行緒(還沒有用過這東東,目前用的還是30多年前學的觀念)







本篇文章回覆於2017-09-29 21:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
不錯的參考

小羊窒息
捐贈 VP 給 小羊窒息 檢舉此回應
沒有顯示的form...不曉得能不能設定快速鍵...
如果可以設,也能用,就可以直接解決


再不然就用hook(勾子)吧.......在form2啟用的狀況下按下XX按鍵就直接把form2關了...
本篇文章回覆於2017-09-30 12:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

P陳
檢舉此回應
TO 小羊:
沒有顯示就不會有焦點,按快速鍵時誰收???


TO 各位:
作出來了
1.在FORM1 中 再多設一個 TIMER (100/1000),如 Timer4 (我找到的 FORM1 送出 SHOWDIALOG 後唯一沒有跟著休眠的事件)

2.在FORM1 設一個小區塊,作個顏色框,方便滑鼠進入的地方。

3.FORM1 的 Timer4 每隔100/1000 秒檢查滑鼠的位置,如果在該小方框中連續5次中,就設 STOPED=true ,否則 stoped=false 以防止滑鼠移動時造成誤判。

4.FORM 2 3 4 每隔 100/1000 秒就檢查 stoped 如果是 true ,就將自已關掉。

本篇文章回覆於2017-09-30 16:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

小魚
檢舉此回應
如果要同時做很多件事,
可能需要用到執行緒,
這有點像左右互搏,
左手跟右手做不同的事,
然後要考慮如果不需要改主介面的資料(或者說不需要用到主執行緒的動作),
譬如寄E-mail之類的,
直接使用執行緒沒關係,
但如果要用到主緒的話,
就要再使用委派,
這部分有空研究一下吧。
本篇文章回覆於2017-09-30 19:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.