台灣最大程式設計社群網站
線上人數
1373
 
會員總數:246690
討論主題:190103
歡迎您免費加入會員
討論區列表 >> C# >> Timer的小問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Timer的小問題
價值 : 50 QP  點閱數:989 回應數:7
樓主

fish0111
門外漢
0 2
24 3
發送站內信

目前想做按下按鈕後開始從第一筆資料庫資料自動的下一筆再下一筆...,到最後一筆的時候再跳回第一筆重複動作

目前的程式碼(沒有跳回的動作),想請問該如何修改?






搜尋相關Tags的文章: [ c# ] , [ timer ] ,
本篇文章發表於2018-04-21 22:03
1樓
回應

P陳
檢舉此回應
1. BindingSource1.MovePrevious(); 是往上跑不是往下跑

2. (我用VB 寫的,您自已改成 C#)

if BindingSource1.position=0 then
BindingSource1.position=bindingsource1.rows.count
end if
BindingSource1.MovePrevious();
TextBox1.Text = dataGridView1.CurrentRow.Cells[0].FormattedValue.ToString();
TextBox2.Text = dataGridView1.CurrentRow.Cells[1].FormattedValue.ToString();
本篇文章回覆於2018-04-21 23:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

P陳
檢舉此回應

End Sub 之前還要再加1句

application.doevents
本篇文章回覆於2018-04-21 23:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

小魚
檢舉此回應
應該不需要 application.doevents 吧,
因為Timer跑完自己就會更新了
本篇文章回覆於2018-04-21 23:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

P陳
檢舉此回應
Application.doevents <---的確不一定要加

因為不知他程式是如何寫的,如果控制權沒有交回到 FORM 的話,datagridview 是不會更新的。
我碰過也曾在此幫他人解決過這個問題。

所以加一下比較保險。
本篇文章回覆於2018-04-22 06:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

小魚
檢舉此回應
是喔,所以Timer也會有這個問題嗎?
看這個Timer應該是拉控制項的,
應該是System.Windows.Forms.Timer
(.Net的Timer有三種)
本篇文章回覆於2018-04-22 08:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

誰是誰
檢舉此回應
控制權交回給 Form ? 你指的是甚麼控制權?如果要講的是執行緒,CLR 執行緒控制權的移轉通常是由 CLR 自行管理,和程式設計的人無關。
Forms.Timer 的 Tick 事件委派函式會執行在該 Form 所在執行緒,所以交回的說法讓人覺得不合理。
Application.DoEvents 也不是定義成甚麼控制權移轉,它的作用是強迫目前在訊息佇列等待的訊息執行,使用它有風險,因為程式流程可能會變得無法預測。

如非很不得已,強烈建議不要使用 Applications.DoEvents。
如果一件事情需要 Application.DoEvents,表示會有長時間卡住 UI 執行緒。對於這樣的長時運算,比較建議的作法要不是乾脆直接使用 Thread 或 ThreadPool 搞其他執行緒來做長時運算 ,要不然就是使用 TPL 做多緒/非同步設計。
我也建議不要用 Forms.Timer ,因為它倚賴事件訊息迴圈,除非是非常簡單的處理;建議用 System.Timers.Timer 或 System.Threading,Timer。


本篇文章回覆於2018-04-23 11:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

春天
檢舉此回應
我也覺的用Thread比較好
本篇文章回覆於2018-04-24 10:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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