台灣最大程式設計社群網站
線上人數
1707
 
會員總數:241165
討論主題:186825
歡迎您免費加入會員
討論區列表 >> VB.NET >> 如何取得FROM上面CONTROL的名稱
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何取得FROM上面CONTROL的名稱
價值 : 50 QP  點閱數:160 回應數:9

樓主

毛蟲0047
門外漢
0 2
26 2
發送站內信

捐贈 VP 給 毛蟲0047
請教各位,
我目前的畫面就像是線上問卷,上面只有兩種元件 Textbox & Combobox
因使用者的習慣,使用Enter按鍵跳到下一個輸入格

===== 以上是畫面的背景 ======

因為每個欄位都必須填寫,所以在焦點離開的時候都要去檢查此控制項是否有值
除了每個Textbox/ Combobox 都寫一個Leave事件這個方法
因為所有的控制項太多了,全部寫完至少有50個Leave事件,都是要判別此Textbox/ Combobox是否有值
這有辦法寫成一個事件嗎?
目前我遇到的困難是,我無法取得目前焦點控制項的Name,所以沒辦法判斷是否輸入空白




搜尋相關Tags的文章: [ VB ] , [ 控制項 ] , [ control ] , [ textbox ] , [ combobox ] ,
本篇文章發表於2017-11-07 16:12
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

P陳
檢舉此回應
您要比對的不是NAME 而是TYPE
Name 的作法

for each control1 as control in me.controls
if control1.name="N1" or control1.name="N2" then
......
end if
next

type 的比法
for each control1 as control in me.controls
if control1.type.name ="TextBox" orelse Control1.type.Name="ComboBox" then
......
end if
next


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

P陳
檢舉此回應
目前的 目前焦點控制項的Name
AactiveControl.name
但用這個方法要有點技巧,不知你程式如何寫的。
也可以用validation 來處理

建議您用 #1 的方法
#1 的作法,可以作一個按鈕,(檢查),一次檢查完。有問題的就停在那欄位上,或將欄位變紅色。

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

誰是誰
檢舉此回應
為什麼比對 type 還要轉乘 string ? 直接比 type 會不會乾脆點 ?
本篇文章回覆於2017-11-08 01:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

Lester
捐贈 VP 給 Lester 檢舉此回應
可以嘗試設定每個control的tabstop的true/false
(這樣不限制control.type)
利用tabindex去控制先後順序。
開啟FORM的keypreview
把keypress按下enter時候,改成send tab就可以達到你要的功能。

本篇文章回覆於2017-11-08 11:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

city
檢舉此回應
個人意見:

可以設一個確定按鈕
按下確定按鈕 再來判斷全部的元件是否有值

例如:中國信託的網頁
如果使用者要登入網路銀行
需要輸入:
1.身分證字號
2.使用者代號
3.網銀密碼
4.驗證碼

當使用者輸入完畢後 按登入按鈕
這時候系統就會判斷使用者輸入的訊息是否正確
(包含:4個TextBox是否空值)

使用者輸入資料時 不需要照順序輸入
系統也不管使用者輸入什麼 或者是否空值
等到使用者按下登入按鈕
這時候系統才開始檢查4個TextBox的值是否正確

中國信託網頁:
https://www.ctbcbank.com/CTCBPortalWeb/appmanager/ebank/rb
本篇文章回覆於2017-11-08 13:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

P陳
檢舉此回應

TO 誰是誰:

【為什麼比對 type 還要轉成 string ? 直接比 type 會不會乾脆點 ? 】
我都是這樣寫的。

請問一下您是如何寫的?

-----------------------------------------------
程式碼錯了
control1.GetType.Name = "TextBox" (control1.Type.Name = "TextBox" <---錯的)



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

誰是誰
檢舉此回應
直接給你看個程式碼,以下兩種做法在精確的解釋上是有差異的。
第一個方法就是 Type 比 Type。第二個方法是試著轉型看看能不能轉成那個 Type。
即使都是 reference type , (1) 和 (2) 不見得在每個情況下都會得到一樣的答案。

本篇文章回覆於2017-11-09 03:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

誰是誰
檢舉此回應
還有一種

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

P陳
檢舉此回應
TO 誰是誰
瞭解了 謝謝
-----------------------

樓主好像 快閃了

本篇文章回覆於2017-11-10 00:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

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