Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Vô hiệu hóa nút Close của Form (cửa sổ)
#1
Khi em muốn cho 1 form hiện ra nhưng em không muốn cho người ta tắt cửa sổ này bằng nút cửa sổ Close và phải chọn nút mà em tạo ra để đóng form ạ? Em nhờ mọi người viết cho em đoạn code như vậy!?
Chữ ký của ChiMai ChiMai,gia nhập Thủ Thuật Access từ 14-07 -16.
Reply
Những người đã cảm ơn
#2
Của bạn đây này. Nhớ search trước khi hỏi nha.
Chữ ký của cpucloi Tôi chỉ biết mỗi một điều là những điều tôi biết được còn quá ít 021
Gmail: cgiahuy13@gmail.com


ღღღღღTài sản của cpucloi (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#3
Anh đã tìm thấy bài này. Nhưng em không hiểu cách sử dụng như thế nào?

Sub EnabledClose()
    
Application.CommandBars.ActiveMenuBar.Controls("File").Controls("Close").Enabled False
End Sub

Sub DisablesClose
()
    
Application.CommandBars.ActiveMenuBar.Controls("File").Controls("Close").Enabled True
End Sub 


Đoạn này em không hiểu: Controls("File").Nó là tên file ạ?
Chữ ký của ChiMai ChiMai,gia nhập Thủ Thuật Access từ 14-07 -16.
Reply
Những người đã cảm ơn
#4
(07-08-16, 12:04 AM)ChiMai Đã viết: Khi em muốn cho 1 form hiện ra nhưng em không muốn cho người ta tắt cửa sổ này bằng nút cửa sổ Close và phải chọn nút mà em tạo ra để đóng form ạ? Em nhờ mọi người viết cho em đoạn code như vậy!?

Trả lời:

Có 3 cách để làm như vậy:

Riêng câu bạn vừa hỏi:
(07-08-16, 02:52 PM)ChiMai Đã viết: em không hiểu cách sử dụng như thế nào?
Mã PHP:
Sub EnabledClose()
    Application.CommandBars.ActiveMenuBar.Controls("File").Controls("Close").Enabled = False
End Sub 

Mã PHP:
Sub DisablesClose()
    Application.CommandBars.ActiveMenuBar.Controls("File").Controls("Close").Enabled = True
End Sub  

Đoạn này em không hiểu: Controls("File").Nó là tên file ạ?
 


Nó là Menu thực đơn File phía trên cùng của Toolbar, Chấm tiếp theo là nút điều khiển Close thuộc Menu File. ( Chỉ có thê)

* Quay lại vấn đề Tắt nút X ( Close) trên Form của bạn.

Cách 1: Vào Properties của Form, đi đến dòng Control Box: bạn chọn chữ No => Tác dụng, là tắt nút X (Close) luôn.
Cách 2: Nếu không làm theo cách 1, thì chúng ta sẽ tạo 1 câu xác nhận khi nhấn vào nút X Close, cụ thể như sau
* Chèn vào sự kiện Unload nhé:
Mã PHP:
Private Sub Form_Unload(Cancel As Integer
If 
MsgBox("Đóng form hả ông nội?"vbYesNo) = vbYes Then 
Exit Sub 
Else 
Cancel True 
End 
If 
End Sub 

* Tác dụng, khi bạn nhấn nút X close form nó sẽ hỏi " Đóng form hả ông nội?" Bạn chọn Yes nó sẽ đóng, kg thì thôi.

Cách thứ 3: Hơi rác rối, là tạo ra 1 hàm để không chế đóng form, cụ thể link của cpuloi đã hướng dẫn.
[Thủ Thuật] Disables or Enabled close button (x) Access

1/ Bạn tạo một Class Modul, đặt tên là CloseCommand và chép đoạn code này vào

Mã PHP:
Option Compare Database
Option Explicit

Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long_
  ByVal bRevert 
As Long) As Long

Private Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As _
  Long
ByVal wIDEnableItem As LongByVal wEnable As Long) As Long

Private Declare Function GetMenuItemInfo Lib "user32" Alias _
  
"GetMenuItemInfoA" (ByVal hMenu As LongByVal un As LongByVal b As _
  Long
lpMenuItemInfo As MENUITEMINFO) As Long

Private Type MENUITEMINFO
   cbSize 
As Long
   fMask 
As Long
   fType 
As Long
   fState 
As Long
   wID 
As Long
   hSubMenu 
As Long
   hbmpChecked 
As Long
   hbmpUnchecked 
As Long
   dwItemData 
As Long
   dwTypeData 
As String
   cch 
As Long
End Type

Const MF_GRAYED = &H1&
Const 
MF_BYCOMMAND = &H0&
Const 
SC_CLOSE = &HF060&

Public 
Property Get Enabled() As Boolean
   Dim hwnd 
As Long
   Dim hMenu 
As Long
   Dim Result 
As Long
   Dim MI 
As MENUITEMINFO
   
   MI
.cbSize Len(MI)
   MI.dwTypeData String(800)
   MI.cch Len(MI.dwTypeData)
   MI.fMask MF_GRAYED
   MI
.wID SC_CLOSE
   hwnd 
Application.hWndAccessApp
   hMenu 
GetSystemMenu(hwnd0)
   Result GetMenuItemInfo(hMenuMI.wID0MI)
   Enabled = (MI.fState And MF_GRAYED) = 0
End Property

Public Property Let Enabled(boolClose As Boolean)
   Dim hwnd As Long
   Dim wFlags 
As Long
   Dim hMenu 
As Long
   Dim Result 
As Long
   
   hwnd 
Application.hWndAccessApp
   hMenu 
GetSystemMenu(hwnd0)
   If Not boolClose Then
       wFlags 
MF_BYCOMMAND Or MF_GRAYED
   Else
       wFlags 
MF_BYCOMMAND And Not MF_GRAYED
   End 
If
   Result EnableMenuItem(hMenuSC_CLOSEwFlags)
End Property 

2/ Tạo một modul mới và chép doạn code này vào

Mã PHP:
Option Compare Database
Option Explicit

Function InitApplication(intEnab As Boolean)
On Error GoTo err_proc
'Enabled or disables the MS application close (X) button - Dependant on state of intEnab
'
Uses Class Module 'Close Command'
Const C_PROC_NAME "InitApplication"
  Dim C As CloseCommand
  Set C 
= New CloseCommand
  C
.Enabled intEnab
exit_proc
:
   Exit Function
err_proc:
   MsgBox "Error in Function: '" C_PROC_NAME "'" Chr(13) & Err.Description
   Resume exit_proc

End 
Function 

Khi sử dụng gọi InitApplication(False) để Enable ( Nút Close bình thường) và ngược lại

* Hy vọng 3 cách này bạn tự chọn và làm cho mình 1 cách.

Thân mến!
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn ChiMai


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Help] Thiết kế form nhập và lưu trữ dữ liệu theo yêu cầu brianhuynh 16 624 20-10-16, 10:54 PM
Bài mới nhất: brianhuynh
  [Hỏi] Cách loại bỏ icon Filter trên Datasheet Form có nguồn là Query. toancvp 2 99 19-10-16, 08:53 PM
Bài mới nhất: toancvp
  [Help] Nhờ tạo form lưu hóa đơn nhập, hóa đơn xuất, hàng nhập hàng xuất không cần tính tồn laxx_xxal 1 127 22-09-16, 02:35 PM
Bài mới nhất: Nguyen Hoang Diep
  [Hỏi] Cách đưa chức năng compact & repair vào form toancvp 6 486 24-08-16, 12:19 AM
Bài mới nhất: paulsteigel
  Vô hiệu hóa 1 số phím tắt thanhtruong 1 99 29-05-16, 08:24 AM
Bài mới nhất: ongke0711

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ