台灣最大程式設計社群網站
線上人數
1268
 
會員總數:241740
討論主題:187051
歡迎您免費加入會員
討論區列表 >> VB.NET >> datagridview row選取問題 & cell資料驗証
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
datagridview row選取問題 & cell資料驗証
價值 : 10 QP  點閱數:257 回應數:5

樓主

vbmonk
門外漢
0 12
340 27
發送站內信

請問各位前輩,
我想在user輸入完第一行的資料,焦點移到第二行時,進行第一行部份CELL資料的驗証。
但我這樣寫卻怎麼也只抓到目前的CurrentRow.Index,所以驗証到的資料也是第二行,並不是第一行。

請問我使用這個事件(SelectionChanged) 正確嗎?
如果正確,我要怎麼改才能抓到第一行??




或者CELLS的資料驗証有更簡便的方法??

搜尋相關Tags的文章: [ datagridview ] ,
本篇文章發表於2017-12-11 19:00
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

Lester
捐贈 VP 給 Lester 檢舉此回應
index是從0開始

cells(1)是第二欄
cells(0)才是第一欄。
本篇文章回覆於2017-12-12 09:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

羅伯斯
檢舉此回應
當焦點已移到第一列,而要驗證第二列的資料時
此時 datagridview1.CurrentRow.Index 的索引值為目前所在列(即 Index = 1)
應該為 datagridview1.CurrentRow.Index - 1,才能驗證上一列的資料(即 Index = 0)

另外建議以 datagridview1_CellValidating 事件來處理
於輸入資料後,立即驗證資料,通過驗證後,才讓焦點移動,否則要求重新輸入


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

P陳
檢舉此回應

1.currentrow 是新進入的資料ROW
2.e.rowindex 才是原來的 ROW

二樓的直接 -1 的話 ,是 1 跳2 才可以,但如是 1 跳3 、或2跳回1 就還是會取錯筆

所以
datagridview1.Rows(datagridview1.CurrentRow.Index).Cells(1).Value)
只要改成如下 就可以了 (記得電腦是由0起算的)
datagridview1.Rows(e.rowindex).Cells(1).Value)
本篇文章回覆於2017-12-13 16:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

P陳
檢舉此回應
另:
datagridview1_SelectionChanged

會建議用
datagridview1_rowenter 較好
本篇文章回覆於2017-12-13 16:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

vbmonk
檢舉此回應
感謝幾位大大的回覆,我再來試看看!
本篇文章回覆於2017-12-15 09:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

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