cho mình hỏi cách cố định userform (1 người xem)

Người dùng đang xem chủ đề này

kuvi1324

Thành viên chính thức
Tham gia
1/2/13
Bài viết
78
Được thích
0
mình muốn cố định userform (không cho kéo qua kéo lại) khi nó hiện lên thì làm thế nào mọi người

Private Sub UserForm_Initialize()
Me.Width = Application.Width
Me.Height = Application.Height
End Sub

cần phải thêm gì vào nữa
cảm ơn nhiều
 
mình muốn cố định userform (không cho kéo qua kéo lại) khi nó hiện lên thì làm thế nào mọi người

Private Sub UserForm_Initialize()
Me.Width = Application.Width
Me.Height = Application.Height
End Sub

cần phải thêm gì vào nữa
cảm ơn nhiều

ý bạn là không muốn người dùng sử dụng chuột để move vị trí của form đúng không ?
 
Upvote 0
mình muốn cố định userform (không cho kéo qua kéo lại) khi nó hiện lên thì làm thế nào mọi người

Private Sub UserForm_Initialize()
Me.Width = Application.Width
Me.Height = Application.Height
End Sub

cần phải thêm gì vào nữa
cảm ơn nhiều

thì dùng thêm sự kiện form_layout nữa ( sự kiện này sẽ không ngăn chặn người dùng dịch chuyển form, mà nó sẽ tự động đưa form về vị trí ban đầu )
kiểu như vậy :
Mã:
Private m_vntTopPrivate m_vntLeft




Private Sub UserForm_Initialize()
   m_vntTop = Me.Top
    m_vntLeft = Me.Left
End Sub


Private Sub UserForm_Layout()


    If Not IsEmpty(m_vntTop) Then 
            [COLOR=#000080][FONT=monospace]Application.ScreenUpdating = False[/FONT][/COLOR]
             Me.Move m_vntLeft, m_vntTop
[COLOR=#000080][FONT=monospace]          Application.ScreenUpdating = true

[/FONT][/COLOR]end if
    
End Sub
trên đây là mẹo thôi, còn nếu là mình, mình sẽ dùng các hàm API để xử lý vụ này !
 
Lần chỉnh sửa cuối:
Upvote 0
đúng rồi đó bạn .............
Mục đích là bạn muốn vô hiệu hóa menu "Move" của user form, tham khảo hàm API sau :
Mã:
Private Declare  Function GetSystemMenu Lib "USER32" _
(ByVal hWnd As Long, _
ByVal bRevert As Long) As Long
'---------------------
Private Declare  Function RemoveMenu Lib "USER32" _
(ByVal hme2nu As Long, _
ByVal nPosition As Long, _
ByVal wFlags As Long) As Long
  '-----------------------------------------------------
Private Declare  Function FindWindowA Lib "USER32" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
  '-----------------------------------------------------
 Private Const MF_BYPOSITION As Long = &H400&
'---------------------------------------
Public Sub FormatUserForm(UserFormCaption As String)
    Dim lFrmHdl         As Long
    lFrmHdl = FindWindowA("ThunderDFrame", UserFormCaption)
    If lFrmHdl <> 0 Then
            RemoveMenu GetSystemMenu(lFrmHdl, False), 1, MF_BYPOSITION
    End If
End Sub
  '--------------------------------------------------------------------
Sub ShowForm()
    UserForm1.Show 
End Sub
viết sự kiện trong form như sau :
Mã:
Private Sub UserForm_Initialize()
    Call Module1.FormatUserForm(Me.Caption)
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
mình muốn cố định userform (không cho kéo qua kéo lại) khi nó hiện lên thì làm thế nào mọi người

Private Sub UserForm_Initialize()
Me.Width = Application.Width
Me.Height = Application.Height
End Sub

cần phải thêm gì vào nữa
cảm ơn nhiều
Thử vầy coi được không
PHP:
Private Sub UserForm_Layout()
With Application
   Me.Move .Left + 10, .Top + 10, .Width - 20, .Height - 20
End With
End Sub
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom