Vấn đề Zoom control khi Maximized, Minimized, Normal trong form (3 người xem)

Liên hệ QC

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

Hoàng Trọng Nghĩa

Chuyên gia GPE
Thành viên BQT
Moderator
Tham gia
17/8/08
Bài viết
8,662
Được thích
16,720
Giới tính
Nam
Xin vui lòng cho hỏi, khi Max hay Normal cửa sổ của Form, có code nào zoom các control trong form theo tỷ lệ có được không?
Tôi đã tìm mãi trên Google mà chưa thấy.
Xin cám ơn mọi sự hướng dẫn và giúp đỡ.
 
Search trên mạng có code này hướng dẫn ZOOM, thế nhưng áp dụng cho EXCEL lại bị lỗi! Các Thầy test thử xem sao nhé!
PHP:
Public Sub zoom(frm As Form)
  ResWidth = Screen.Width / Screen.TwipsPerPixelX
  ResHeight = Screen.Height / Screen.TwipsPerPixelY
  ScreenRes = ResWidth & "x" & ResHeight
  zoomn = ResWidth / 1024 ''(1024 x 768  là do phân giai màn hình khi thiet ke)
  zoomd = ResHeight / 768
        Dim MYCONTROL As Control
        For Each MYCONTROL In frm.Controls
    If Not TypeOf MYCONTROL Is Line Then
        MYCONTROL.Left = MYCONTROL.Left * zoomn
        If Not TypeOf MYCONTROL Is ComboBox Then
        MYCONTROL.Height = MYCONTROL.Height * zoomd
        End If
        MYCONTROL.Top = MYCONTROL.Top * zoomd
        MYCONTROL.Width = MYCONTROL.Width * zoomn
        MYCONTROL.Font.Size = MYCONTROL.Font.Size * zoomn
    Else
        MYCONTROL.X1 = MYCONTROL.X1 * zoomn
        MYCONTROL.Y1 = MYCONTROL.Y1 * zoomn
        MYCONTROL.X2 = MYCONTROL.X2 * zoomn
        MYCONTROL.Y2 = MYCONTROL.Y2 * zoomn
    End If
        Next
frm.Width = frm.Width * zoomn
frm.Height = frm.Height * zoomd
End Sub
 
Private Sub Form_Load()
Call zoom(UserForm1)
End Sub
 
Upvote 0
Search trên mạng có code này hướng dẫn ZOOM, thế nhưng áp dụng cho EXCEL lại bị lỗi! Các Thầy test thử xem sao nhé!
PHP:
Public Sub zoom(frm As Form)
  ResWidth = Screen.Width / Screen.TwipsPerPixelX
  ResHeight = Screen.Height / Screen.TwipsPerPixelY
  ScreenRes = ResWidth & "x" & ResHeight
  zoomn = ResWidth / 1024 ''(1024 x 768  là do phân giai màn hình khi thiet ke)
  zoomd = ResHeight / 768
        Dim MYCONTROL As Control
        For Each MYCONTROL In frm.Controls
    If Not TypeOf MYCONTROL Is Line Then
        MYCONTROL.Left = MYCONTROL.Left * zoomn
        If Not TypeOf MYCONTROL Is ComboBox Then
        MYCONTROL.Height = MYCONTROL.Height * zoomd
        End If
        MYCONTROL.Top = MYCONTROL.Top * zoomd
        MYCONTROL.Width = MYCONTROL.Width * zoomn
        MYCONTROL.Font.Size = MYCONTROL.Font.Size * zoomn
    Else
        MYCONTROL.X1 = MYCONTROL.X1 * zoomn
        MYCONTROL.Y1 = MYCONTROL.Y1 * zoomn
        MYCONTROL.X2 = MYCONTROL.X2 * zoomn
        MYCONTROL.Y2 = MYCONTROL.Y2 * zoomn
    End If
        Next
frm.Width = frm.Width * zoomn
frm.Height = frm.Height * zoomd
End Sub
 
Private Sub Form_Load()
Call zoom(UserForm1)
End Sub

Trong Excel không có sự kiện form_load mà có UserForm_Initialize.

Nếu sử dụng VB6 thì chỉnh cái này dể như trở bàn tay luôn anh à.
 
Upvote 0
Vấn đề này đã lâu, không biết các Thầy có giải quyết được chưa ah!!!!. Em có tạo một form khi bung toàn màn hình thì lại mất commandButton "Thoát". Có Thầy nào làm được chưa ah!!!????? KHông biết Anh Nghĩa đã làm được chưa?????
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Các Thầy có thể chỉnh code để hiện form Maximum và Minimum chứ không có Normal, vì em thấy có Normal cũng không trở về form theo thiết kế ban đầu. như anh Nghĩa nòi:
Hoàng Trọng Nghia:Lúc đầu ta thiết kế ở dạng Normal, tức là khi Max thì nó full màn hình, còn Nomal thì nó trở về với dạng thiết kế, trừ khi Form đang load mà ta resize thủ công kéo giản form thì nó normal theo kích thước đó trong lúc nó vẫn đang load, nếu unload thì nó cũng quay lại kích cỡ ban đầu chứ không giữ lại như các cửa sổ khác. Còn với Form ăn theo cửa sổ Application, khi mở ra, đồng ý là nó gần như full và khi ta max nó có giản ra vài milimet, khi normal thì cũng giảm vài milimet,
http://www.giaiphapexcel.com/forum/showthread.php?52745-Zoom-Userform-Controls&p=333826#post333826
Mong các Thầy chỉ giáo.
 
Upvote 0
Trong bài này, tôi dùng thủ tục Zoom/Resize Form (code trong Form) của Anh Nguyễn Duy Tuân và thủ tục SetStyles của Thầy ndu96081631 (code trong Module) để trình bày form này, bạn có thể Min, Normal, Max và Resize UserForm, thậm chí bạn có thể đặt Icon trên caption của Form với thủ tục SetStyles.

Xem file trước rồi muốn gì hỏi sau hen.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
sao em thêm mấy control khác, khi bung form lại mất một số control, như nút "thêm , sửa . xóa . thoát. Mán hình mấy em 14 Inch, độ phân giải 1280x800. Mong anh xem giúp.
 

File đính kèm

Upvote 0
sao em thêm mấy control khác, khi bung form lại mất một số control, như nút "thêm , sửa . xóa . thoát. Mán hình mấy em 14 Inch, độ phân giải 1280x800. Mong anh xem giúp.
Kakakaa, bạn không bị như thế mới là lạ đó, tỷ lệ form với tỷ lệ màn hình nó không tương thích nên khi nó zoom lên sẽ có một số nó chạy tuốt luốt xuống dưới chứ sao! Nhất là Frame và ListBox càng bị! Muốn được show toàn màn hình những control đó phải có code điều chỉnh và cân đối, canh giữa nữa chứ! Muốn thủ tục điều chỉnh không? Đóng học phí 1 tháng nhé! Kakakaka.

Dạ Anh Nghĩa cho em đóng học phí với. Bao nhiêu vậy Anh?????
Trước tiên bạn làm 1 form với Size 400x600 (tạm gọi là size chuẩn hen) rồi tất cả các control bạn sắp xếp sao cho cân đối toàn bộ trên đó. (mé mé cho tức chơi nè kakaka)

Đóng học phí một chầu nhậu với vài anh em GPE hen! Mà đã đóng học phí thì phải nhắn tin riêng chứ hả? Show ra tự nhiên mình đóng học phí người khác lại hưởng không đâu được nè! Kakakaka__--____--__

Bạn nhìn hình, cân đối từng milimet!
 

File đính kèm

  • CanDoi.jpg
    CanDoi.jpg
    61.7 KB · Đọc: 52
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Ủa? Mười mấy bài cuối này đang nói về vấn đề gì đây? Liên quan sao với chủ đề của topic?
 
Upvote 0
anh nhìn avatar em còn chưa biết hay sao , ưu tiên đi


Vậy chắc Anh Nghĩa ưu tiên doveandrose rồi, sao không thấy anh Nghĩa nhắn tin???????

Số mình dại gái toàn tập rồi, kể cả gái pê-đê! -\\/.!$@!!

Thôi mời các "gái gú" xem file luôn đi ợ!
 

File đính kèm

Upvote 0
Đoạn code này chỉnh cho CommanButton, Frame, ListBox cân đối theo Form phải không ANH NGHĨA????
Mã:
ĩ''Thuat toan nam tai day!    
    Dim i As Long
    For i = 1 To 4
        With Me("CommandButton" & i)
            .Top = Me.InsideHeight - .Height - 12
        End With
    Next
    
    Frame1.Height = CommandButton1.Top - Frame1.Top - 12
    ListBox1.Height = CommandButton1.Top - ListBox1.Top - 12
End Sub
Em thử thì Oke rồi(màn hình 14 inch)Vậy Không biết Form này có cân đối với màn hình 15.6 inch không Anh NGHĨA.
 
Lần chỉnh sửa cuối:
Upvote 0
Số mình dại gái toàn tập rồi, kể cả gái pê-đê! -\\/.!$@!!

Thôi mời các "gái gú" xem file luôn đi ợ!
Với cái file này, khi bạn bấm nút Normal, bạn có thể nắm mép (cạnh) của Form (sẽ có mũi tên 2 chiều) các bạn co giản độ rộng, cao của form, các bạn sẽ thấy, các Control của form đều canh rất cân đối theo tỷ lệ của form lớn nhỏ tùy ý.

Đoạn code này chỉnh cho CommanButton, Frame, ListBox cân đối theo Form phải không ANH NGHĨA????
Mã:
'[COLOR=#ff0000][B]Thuat toan nam tai day!   [/B][/COLOR] 
    Dim i As Long
    For i = 1 To 4
        With Me("CommandButton" & i)
            .Top = Me.InsideHeight - .Height - 12
        End With
    Next
    
    Frame1.Height = CommandButton1.Top - Frame1.Top - 12
    ListBox1.Height = CommandButton1.Top - ListBox1.Top - 12
End Sub

Trời ơi, đã ghi rành rành ra như thế mà còn hỏi gì nữa!
 
Upvote 0
20 bài, lạc đề, và tôi xóa

Ủa? Mười mấy bài cuối này đang nói về vấn đề gì đây? Liên quan sao với chủ đề của topic?

Vậy thì xóa luôn bài này với bài đó luôn đi Lão Chết Tiệt ơi! (Không liên quan nữa)

Vậy thì xóa luôn các bài này luôn đi Lão Chết Tiệt ơi! (Không liên quan nữa)
 
Lần chỉnh sửa cuối:
Upvote 0
Mềnh là mềnh kiện nà, xóa hay gộp bài thì bài này không có liên quan hay sao mà làm cho nó biệt vô âm tính vậy? Bài giống bài ở dưới này nà:

Em thử thì Oke rồi(màn hình 14 inch)Vậy Không biết Form này có cân đối với màn hình 15.6 inch không Anh NGHĨA.

Bạn cứ thử n inch xem, đảm bảo nó đều cân đối!
 
Upvote 0
Upvote 0
Anh Nghĩa ơi, file em đưa chỉ có 4 CommandButton, 1 Frame, 1 ListBox. Vậy File có 8 CommandButton và 2 ListBox thì chỉnh code cân đối với Form làm sao Anh Nghĩa. Mong Anh chỉ giáo.
 
Upvote 0
Web KT

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

Back
Top Bottom