กระทู้เก่าบอร์ด อ.Yeadram
        
           1,610   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.4957s
    
      
		
ข้อกำหนด: ห้ามใช้การบวกจำนวน
วิธีแก้ปัญหา: ใช้วิธีการลบจำนวน
2 - (-3) = 5
For i = 0 To TabCtl13.Pages(2).Controls.Count - 1
TabCtl13.Pages(2).Controls.Item(i).Visible = False
Next i