Cách dụng MessageBox


{tocify} $title={Table of Contents}

MsgBox [Message Box] là một hộp thoại hiển thị thông báo trên Excel. Hộp thoại này giúp cho người tạo chương trình thông báo đến người dùng những thông báo cần thiết. Hộp thoại này có thể trả về hoặc không trả về kết quả khi người dùng tương tác vào các nút lệnh trên hộp thông báo.


    • Cú pháp: MsgBox[ prompt [, buttons ] [, title ] [, helpfile, context ] ]



Đây là chuỗi nội dung cần hiển thị trên hộp thông báo. Độ dài cho phép tối đa là 1024 ký tự. Trong chuỗi hiển thị thông báo này các bạn có thể kết hợp với các ký tự đặt biệt để  ngắt dòng, chèn tab, về đầu dòng, ... 


Các ký tự đặc biệt trong VBA:

    • vbCrLf = chr[13] + chr[10] : xuống dòng và về đầu dòng
    • vbCr = chr[13] : xuống dòng
    • vbLf = chr[10] : về đầu dòng
    • vbNewLine = chr[13] + chr[10] : Ký tự dòng mới
    • vbTab = chr[9] : ký tự Tab
    • vbBack = chr[8] : ký tự BackSpace


Là các nút nhấn và biểu tượng hiển thị trên hộp thông báo. Đây là thuộc tính không bắt buộc, được biểu thị bằng tổng các giá trị chỉ định số lượng và loại nút hiển thị, loại biểu tượng sử dụng, tên nút và loại hộp thông báo. Nếu thuộc tính này được bỏ qua, thì giá trị mặc định cho các nút là 0.


Bảng giá trị buttons: [nguồn từ Microsoft].


ConstantValueDescription
vbOKOnly 0 Display OK button only.
vbOKCancel 1 Display OK and Cancel buttons.
vbAbortRetryIgnore 2 Display AbortRetry, and Ignore buttons.
vbYesNoCancel 3 Display YesNo, and Cancel buttons.
vbYesNo 4 Display Yes and No buttons.
vbRetryCancel 5 Display Retry and Cancel buttons.
vbCritical 16 Display Critical Message icon.
vbQuestion 32 Display Warning Query icon.
vbExclamation 48 Display Warning Message icon.
vbInformation 64 Display Information Message icon.
vbDefaultButton1 0 First button is default.
vbDefaultButton2 256 Second button is default.
vbDefaultButton3 512 Third button is default.
vbDefaultButton4 768 Fourth button is default.
vbApplicationModal 0 Application modal; the user must respond to the message box before continuing work in the current application.
vbSystemModal 4096 System modal; all applications are suspended until the user responds to the message box.
vbMsgBoxHelpButton 16384 Adds Help button to the message box.
VbMsgBoxSetForeground 65536 Specifies the message box window as the foreground window.
vbMsgBoxRight 524288 Text is right aligned.
vbMsgBoxRtlReading 1048576 Specifies text should appear as right-to-left reading on Hebrew and Arabic systems.

Lưu ý:

  • Nhóm đầu từ 0 đến 5 mô tả số lượng và loại nút trong hộp thoại.
  • Nhóm thứ hai [16, 32, 48, 64] mô tả kiểu biểu tượng.
  • Nhóm thứ ba [0, 256, 512] xác định nút nào là mặc định.
  • Nhóm thứ tư [0, 4096] xác định phương thức của hộp tin nhắn.


Thuộc tính này không bắt buộc. Đây là chuỗi được hiển thị trên thanh tiêu đề của hộp thông báo. Nếu thuộc tính này được bỏ qua, thì thanh tiêu đề sẽ hiển thị mặc định là Microsoft Excel.



Thuộc tính này không bắt buộc, không thường được sử dụng, tôi xin được bỏ qua.


Các giá trị trả về khi nhấn các nút lệnh trên MsgBox:


Mình sẽ có nhiều ví dụ có sử dụng MsgBox, khi đó các bạn sẽ hiểu rõ hơn về MsgBox.


Các bạn mở trình soạn thảo code, và tạo một đoạn chương trình như sau:

Private Sub CommandButton1_Click[]     Dim Msg, Style, Title, Help, Ctxt, Response, MyString     Msg = "Xin chao moi nguoi," & _     " toi la Kungfu Excel" & Chr[10] & _      "Chuc moi nguoi mot ngay vui ve!"      Style = vbYesNo + vbCritical + vbDefaultButton2     Title = "Welcome Message"     Res = MsgBox[Msg, Style, Title, Help, Ctxt]     If Res = vbYes Then     MsgBox "Ban moi nhan nut Yes" Else     MsgBox "Ban moi nhan nut No"     End If     End Sub

Tạo một nút lệnh trên worksheet, và gán đoạn chương trình mới tạo ở trên vào. Nhấp vào nút lệnh, hộp thông báo xuất hiện. Trong ví dụ trên, chúng ta đã sử dụng biến Msg để nhận giá trị trả về. Dựa vào bảng các giá trị trả về, nếu giá trị trả về là hằng số vbYes, thì sẽ xuất ra thông báo "Ban moi nhan nut Yes", nếu giá trị trả về là hằng số vnNo thì sẽ xuất ra thông báo "Ban moi nhan nut No".

Chắc hẳn MessageBox đã quá quen thuộc với chúng ta khi sử dụng hệ điều hành Windows. Ngôn ngữ C# và nền tảng .NET Framework đã hỗ trợ rất nhiều trong việc sử dụng MessageBox. Bài viết này sẽ hướng dẫn các bạn làm quen với MessageBox trong Windows Form.

MessageBox là một lớp [class] nằm trong System.Windows.Forms có một phương thức Show để hiển thị thông báo. Có rất nhiều kiểu thông báo, bạn có thể điều chỉnh nội dung thông báo, tiêu đề, các nút OK-Cancel, biểu tượng, v.v...


MessageBox.Show["Xin chào! Tôi là C#"]; Đây là kiểu thông báo đơn giản nhất, chỉ có nội dung và nút OK, chưa bao gồm biểu tượng, tiêu đề, v.v..

Để có tiêu đề ta thêm 1 tham số chuỗi truyền vào phương thức như sau:
MessageBox.Show["Xin chào! Tôi là C#","Thông báo"];


Để cài đặt nút bấm, ta cũng thêm 1 tham số kiểu enum là MessageBoxButtons.. Các loại nút có sẵn bao gồm AbortRetryIgnore, OK, OKCancel, RetryCancel, YesNo, YesNoCancel. Ví dụ:
MessageBox.Show["Xin chào! Tôi là C#", "Thông báo", MessageBoxButtons.AbortRetryIgnore];

Để xử lý các sự kiện khi nhấn vào các nút này mình sẽ hướng dẫn bên dưới.
Để thêm vào icon ta thêm tham số kiểu enum là MessageBoxIcon., có nhiều loại nhưng phổ biến là Warning [tam giác vàng có dấu chấm than], Error [hình tròn đỏ có chữ X], Information [hình tròn xanh lam có chữ i], Question [hình tròn lam có dấu chấm hỏi]. Ví dụ:
MessageBox.Show["Xin chào! Tôi là C#", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question];

Còn rất nhiều tùy chọn khác các bạn có thể tự khám phá. Còn bây giờ mình sẽ hướng dẫn các bạn xử lý sự kiện khi click vào một button trên MessageBox. Giả sử bạn có một Form, và bạn muốn khi người dùng nhấp vào nút Close trên thanh tiêu đề thì sẽ có thông báo hỏi người dùng có muốn thoát chương trình. Nếu người dùng chọn Yes, chương trình sẽ kết thúc, chọn No sẽ không tắt chương trình.

Ta xử lý sự kiện FormClosing, tức là một Form đang đóng lại [nháy vào nút X hoặc lệnh this.Close[],...].


Bạn sẽ dùng một biến kiểu DialogResult để lưu lại kết quả trả về của phương thức MessageBox.Show[]
DialogResult dlr = MessageBox.Show["Bạn muốn thoát chương trình?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question]; Đến lúc này ta chỉ cần xét giá trị của biến dlr để rẽ nhánh thôi. Vì Form đang đóng nên nếu người dùng nhấn No thì sẽ hoãn hành động đóng lại, tham số sự kiện của FormClosing là e nên ta thực hiện như sau:
DialogResult dlr = MessageBox.Show["Bạn muốn thoát chương trình?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question]; if [dlr == DialogResult.No] e.Cancel = true;

Với những giới thiệu sơ lược về, các bạn đã có thể nắm được cách sử dụng cơ bản về MessageBox trong Windows Form.

Page 2

home lập trình tản mạn about

Video liên quan

Chủ Đề