2012-01-28 33 views
8

Có ai ở đây vẫn lập trình VBA không?Cách ẩn điều khiển nút trong VBA

Tôi đang cố gắng để lấy mã này để làm việc

Private Sub button3_click() 

    'hide main buttons 
    button1.Visible = False 
    button2.Visible = False 
    button3.Visible = False 

    'show submenu buttons 
    button4.Visible = True; 
    button5.Visible = True; 

End Sub 

Những gì tôi đang cố gắng để làm cơ bản là tôi có một hình thức chính mà có 5 nút điều khiển chính. 2 trong số chúng bị ẩn khi khởi động. Vì vậy, khi tôi nhấp vào nút 3, tôi muốn ẩn 3 nút chính đầu tiên và "bỏ ẩn" hai nút còn lại. Khi cố gắng để thực hiện sự kiện này, tôi đã nhận ra lỗi

"Lỗi Runtime 2165 - Bạn không thể che giấu một điều khiển có trọng tâm".

Có ai đi qua khía cạnh lập trình này trước đây không? Tôi chắc là nó có thể làm được. Tôi chỉ không hiểu những gì đã xảy ra ở đây ...

+0

Cảm ơn tất cả mọi người. Tất cả các đề xuất của bạn đã được thử - chúng hoạt động! Tôi nên nghĩ rằng có một cách để làm cho chức năng này hoạt động đơn giản, nếu bạn có thể 'suy nghĩ bên ngoài hình vuông' khi mã hóa. Chúc mừng. :) – awongCM

Trả lời

7

Thay đổi tập trung vào một trong những kiểm soát có thể nhìn thấy, trước khi ẩn hiện một

Private Sub button3_click() 

    'show submenu buttons 
    button4.Visible = True 
    button5.Visible = True 

    DoEvents   'execute any pending events, to make sure the button 4 and 5 are really visible 
    button4.SetFocus 'change the focus to a now visible control 
    DoEvents   'execute any pending events, to make sure that button4 really has the focus 

    'now you can hide the other buttons 

    'hide main buttons 
    button1.Visible = False 
    button2.Visible = False 
    button3.Visible = False 

End Sub 

lẽ bạn có thể bỏ qua lệnh DoEvents, bạn nên cố gắng

Các vấn đề liên quan