กระทู้เก่าบอร์ด อ.Yeadram
1,454 5
URL.หัวข้อ /
URL
ทำไมสั่ง Tab.Enabled = False แล้วยังสามารถกดดูได้อ
ผมสร้าง Tab ไว้ 3 tab
ผมต้องการ ปิด tab ที่ 2 กับ Tab ที่ 3 ไว้ก่อน โดยห้ามกด
ผมก็สั่งว่า tab2.Enabled = False
Tab3.Enabled = False
ปัญหาคือทำไมผมยังกดดูข้อมูลในหน้า Tab ของ 2 กับ 3 ได้ มีวิธีไหนที่สามารถทำให้กดไม่ได้ไหมครับ (แต่ไม่เอาแบบ Visible = False นะครับ คือต้องการให้แสดงรูปหน้าของ Tab ด้วยนะครับ
ผมต้องการ ปิด tab ที่ 2 กับ Tab ที่ 3 ไว้ก่อน โดยห้ามกด
ผมก็สั่งว่า tab2.Enabled = False
Tab3.Enabled = False
ปัญหาคือทำไมผมยังกดดูข้อมูลในหน้า Tab ของ 2 กับ 3 ได้ มีวิธีไหนที่สามารถทำให้กดไม่ได้ไหมครับ (แต่ไม่เอาแบบ Visible = False นะครับ คือต้องการให้แสดงรูปหน้าของ Tab ด้วยนะครับ
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R07083
ไม่ได้เจอกันตั้งนานนะครับ คุณ U&ME
สิ่งที่ผมต้องการคือ TAB
ถ้าเราอยู่ที่ Tab 1 แล้วคีย์ข้อมูลยังไม่ครบจะไม่สามารถไปยัง Tab ที่ 2 ได้ แต่พอผมสั่งให้ Tab2 Enabled เป็น False ปรากฎว่าเรายังไปคลิ๊กที่ Tab 2 ได้อยู่นะครับ แต่ผมไม่อยากให้ซ่อน Tab2 หรือ control ที่แสดงอยู่ใน Tab 2 ครับ รบกวนอีกครั้งนะครับ
สิ่งที่ผมต้องการคือ TAB
ถ้าเราอยู่ที่ Tab 1 แล้วคีย์ข้อมูลยังไม่ครบจะไม่สามารถไปยัง Tab ที่ 2 ได้ แต่พอผมสั่งให้ Tab2 Enabled เป็น False ปรากฎว่าเรายังไปคลิ๊กที่ Tab 2 ได้อยู่นะครับ แต่ผมไม่อยากให้ซ่อน Tab2 หรือ control ที่แสดงอยู่ใน Tab 2 ครับ รบกวนอีกครั้งนะครับ
3 @R07090
อ่านๆ ดูเหมือนคุณ man กำลังต้องการที่จะกระทำกับ pages นะครับ ไม่ใช่ tab
แต่ละแท็บของคุณ man มีกี่เพจ หรือว่ามี แท็บละเพจเท่านั้น
ใช่ต้องไปตั้งค่าคุณสมบัติของ page หรือเปล่า
ประมาณนี้น่ะครับ TabCtl0.Pages(1).Enabled (ผมแค่เดานะครับ ไม่ได้ทดสอบ ไม่รู้มีคุณสมบัตินี้ให้ใช้หรือเปล่า อิอิ)
หรือถ้างานคุณ man มี 3 แท็บ (แท็บละ 1 หน้า) จริง
คุณ man คิดว่า object ใด หรือ event ใดที่จะมีหน้าที่จริงๆ ในการตรวจสอบความครบถ้วนของข้อมูลในแต??ละจุด
form_current ได้ไหม หรือต้องกำหนดตัวแปรกลางในฟอร์มไว้แจ้งสถานะของ แท็บแต่ละแท็บ ว่ามีข้อมูลครบหรือยัง
แค่จินตนาการ ผมก็ยังจินตนาการไม่ออกว่า VBA จะรู้ได้อย่างไร, จะรู้ได้ตอนไหน ว่าข้อมูลใน แท็บที่ 1 ครบหรือยัง พร้อมหรือยังที่จะอนุญาตให้เข้าใช้ แท็บที่ 2
ผมคิดตามไม่ทัน ไปตามไม่ถูกแต่อยากมีส่วนร่วมครับ อิอิ
แต่ละแท็บของคุณ man มีกี่เพจ หรือว่ามี แท็บละเพจเท่านั้น
ใช่ต้องไปตั้งค่าคุณสมบัติของ page หรือเปล่า
ประมาณนี้น่ะครับ TabCtl0.Pages(1).Enabled (ผมแค่เดานะครับ ไม่ได้ทดสอบ ไม่รู้มีคุณสมบัตินี้ให้ใช้หรือเปล่า อิอิ)
หรือถ้างานคุณ man มี 3 แท็บ (แท็บละ 1 หน้า) จริง
คุณ man คิดว่า object ใด หรือ event ใดที่จะมีหน้าที่จริงๆ ในการตรวจสอบความครบถ้วนของข้อมูลในแต??ละจุด
form_current ได้ไหม หรือต้องกำหนดตัวแปรกลางในฟอร์มไว้แจ้งสถานะของ แท็บแต่ละแท็บ ว่ามีข้อมูลครบหรือยัง
แค่จินตนาการ ผมก็ยังจินตนาการไม่ออกว่า VBA จะรู้ได้อย่างไร, จะรู้ได้ตอนไหน ว่าข้อมูลใน แท็บที่ 1 ครบหรือยัง พร้อมหรือยังที่จะอนุญาตให้เข้าใช้ แท็บที่ 2
ผมคิดตามไม่ทัน ไปตามไม่ถูกแต่อยากมีส่วนร่วมครับ อิอิ
4 @R07094
'Must declare pIdx on top of a module you work with.
If TabCtl5.Value > pIdx Then
For X = 0 To TabCtl5.Pages.Count - 1
For i = 0 To TabCtl5.Pages(X).Controls.Count - 1
If IsNull(TabCtl5.Pages(X).Controls.Item(i)) Then
TabCtl5.Pages(X).Controls(i).SetFocus
Exit Sub
End If
Next i
pIdx = pIdx + 1
Next X
TabCtl5.Pages(TabCtl5.Value).SetFocus
Else
pIdx = pIdx - 1
End If
If TabCtl5.Value > pIdx Then
For X = 0 To TabCtl5.Pages.Count - 1
For i = 0 To TabCtl5.Pages(X).Controls.Count - 1
If IsNull(TabCtl5.Pages(X).Controls.Item(i)) Then
TabCtl5.Pages(X).Controls(i).SetFocus
Exit Sub
End If
Next i
pIdx = pIdx + 1
Next X
TabCtl5.Pages(TabCtl5.Value).SetFocus
Else
pIdx = pIdx - 1
End If
5 @R07096
ความหมายของผมคือ page แหละครับผมเรียกผิดเอง
ขอบคุณทั้งสองคนมากครับ
ขอบคุณทั้งสองคนมากครับ
Time: 0.3198s
ข้อกำหนด: ห้ามใช้การบวกจำนวน
วิธีแก้ปัญหา: ใช้วิธีการลบจำนวน
2 - (-3) = 5
For i = 0 To TabCtl13.Pages(2).Controls.Count - 1
TabCtl13.Pages(2).Controls.Item(i).Visible = False
Next i