กระทู้เก่าบอร์ด อ.Yeadram
1,429 4
URL.หัวข้อ /
URL
Visable ทั้งกลุ่ม
ผมมี Object หลายตัว ที่ Visable=Flase ไว้
ต่อมาผมต้องการ ให้ Clinck CommandBtt แล้ว Visable=True ทั้งกลุ่ม
แต่ขี้เกียจไล่ชื่อทั้งหมด ทำได้ไหมครับ โดยไม่ต้องไล่ชื่อ
หมายเหตุ Object ทั้งหมดอยู่ใน Area ใกล้ๆ กัน
ต่อมาผมต้องการ ให้ Clinck CommandBtt แล้ว Visable=True ทั้งกลุ่ม
แต่ขี้เกียจไล่ชื่อทั้งหมด ทำได้ไหมครับ โดยไม่ต้องไล่ชื่อ
หมายเหตุ Object ทั้งหมดอยู่ใน Area ใกล้ๆ กัน
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R01113
- สร้าง box control สีทึบ ให้มันวางอยู่หน้าสุด
เวลาปกติ สั่งมัน visible=false
เวลาต้องคลิ๊กปุ่มคำสั่ง ก็สั่งมัน visible = true
รับรองว่า control แถวนั้นหายเกลี้ยงแน่ อิอิ
ถ้ากลุ่มพื่นที่ที่ต้องการ มันไม่เป็นสี่เหลี่ยม ก็สร้างซัก 2 box อิอิ
- เปลี่ยนชื่อ control ให้มีรูปแบบคล้ายๆ กัน แล้วใช้ หลักการ control array
Dim ctl as control
for each ctl in controls
if ctl.name =.............. then ctl.visible = false
next
ตรงจุดไข่ปลาที่ละไว้ แล้วแต่กรณีการดัดแปลง เช่นถ้าเราตั้งชื่อให้คอนโทรลเหล่านี้มีชื่อที่นำหน้าด้วย vis เช่น
visField1, visField2, visField3, visField4 เป็นต้น
เราก็จะใช้เงื่อนไขว่า
if Left(ctl.name,3)='vis' then ctl.visible=false
เป็นต้น
เวลาปกติ สั่งมัน visible=false
เวลาต้องคลิ๊กปุ่มคำสั่ง ก็สั่งมัน visible = true
รับรองว่า control แถวนั้นหายเกลี้ยงแน่ อิอิ
ถ้ากลุ่มพื่นที่ที่ต้องการ มันไม่เป็นสี่เหลี่ยม ก็สร้างซัก 2 box อิอิ
- เปลี่ยนชื่อ control ให้มีรูปแบบคล้ายๆ กัน แล้วใช้ หลักการ control array
Dim ctl as control
for each ctl in controls
if ctl.name =.............. then ctl.visible = false
next
ตรงจุดไข่ปลาที่ละไว้ แล้วแต่กรณีการดัดแปลง เช่นถ้าเราตั้งชื่อให้คอนโทรลเหล่านี้มีชื่อที่นำหน้าด้วย vis เช่น
visField1, visField2, visField3, visField4 เป็นต้น
เราก็จะใช้เงื่อนไขว่า
if Left(ctl.name,3)='vis' then ctl.visible=false
เป็นต้น
3 @R01114
Sub VisibleCtl()
Dim ctl As Control
Dim X As String
For Each ctl In Me.Form.Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Or ctl.ControlType = acCommandButton Then
X = Left(ctl.Name, 3)
If X <> "vis" Then 'If X <> "vis" And X <> "lbl" Then
If ctl.Visible = True Then
ctl.Visible = False
End If
End If
End If
Next ctl
End Sub
'ทำตามที่อ.yeadram ใช้ได้จริงๆ
Dim ctl As Control
Dim X As String
For Each ctl In Me.Form.Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Or ctl.ControlType = acCommandButton Then
X = Left(ctl.Name, 3)
If X <> "vis" Then 'If X <> "vis" And X <> "lbl" Then
If ctl.Visible = True Then
ctl.Visible = False
End If
End If
End If
Next ctl
End Sub
'ทำตามที่อ.yeadram ใช้ได้จริงๆ
4 @R01115
OK ได้แล้วครับ ขอบคุณทุกท่านมากครับ
Time: 0.3241s
โดยกำหนด Back Color เป็นสีเดียวกันกับ สีพื้นของ form
(ในเมื่อ อยู่ใน Area ใกล้กัน ยิ่งง่ายครับ)
แล้วทำ Toggle Botton ให้ Bound Object Frame นั้นๆ Visible = True หรือ False