ทำไมสั่ง Tab.Enabled = False แล้วยังสามารถกดดูได้อ
กระทู้เก่าบอร์ด อ.Yeadram

 1,450   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 ด้วยนะครับ

5 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R07080
จากโจทย์ต่อไปนี้ จงหาผลบวกของ 2 และ 3
ข้อกำหนด: ห้ามใช้การบวกจำนวน
วิธีแก้ปัญหา: ใช้วิธีการลบจำนวน
                 2 - (-3) = 5

For i = 0 To TabCtl13.Pages(2).Controls.Count - 1
      TabCtl13.Pages(2).Controls.Item(i).Visible = False
Next i
2 @R07083
ไม่ได้เจอกันตั้งนานนะครับ คุณ U&ME

สิ่งที่ผมต้องการคือ 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

ผมคิดตามไม่ทัน ไปตามไม่ถูกแต่อยากมีส่วนร่วมครับ อิอิ
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
5 @R07096
ความหมายของผมคือ page แหละครับผมเรียกผิดเอง
ขอบคุณทั้งสองคนมากครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2255s