I wanted an easy to use, skinnable MsgBox with custom button captions and to have or not have a 'Don't ask me again' option.
Here's what I came up with.
This comes from the header of the form:
A simple sample project is in the TestForm folder.Code:This form makes as many buttons as you need for the options you want to give to the user. It can also display and return the value of a "Don't ask me again" checkbox It has two functions that can be called frmMsgBox.Msg: works similar to a normal MsgBox, but it's easier to use Only the Prompt is required frmMsgBox.MsgCstm: Allows you to select your own button captions and add as many as you want. A ParramArray is used for the button names This prevents using Optional parameters :/ Both functions return the index number of the button that was clicked (1 based) '0' always indicates that the user closed the box without hitting a button You can also access the user selected options through the form's two Global variables: frmMsgBox.g_lBtnClicked and frmMsgBox.g_bDontAsk *********************************************************************************** Example uses Converting a standard MsgBox to frmMsgBox.Msg: lOption = MsgBox("Test", vbYesNoCancel Or vbCritical Or vbDefaultButton2) Use: lOption = frmMsgBox.Msg("Test", mbYesNoCancel, mbCritical, 2) Custom MsgBox use: frmMsgBox.MsgCstm "Want a cup of coffee?", "Coffee?", mbQuestion, 1, True, _ "Yes", "No", "Maybe", "Ask me later" Select Case frmMsgBox.g_lBtnClicked Case 0 ' 0 always indicates that the user closed the box without hitting a button Case 1 'the 1st button in your list was clicked Case 2 'the 2nd button in your list was clicked Case 3 'ect. Case 4 End Select bDontAsk = frmMsgBox.g_bDontAsk *********************************************************************************** Tips: a. This looks great when a Manifest File is used b. You can match the form to your skinned project by: 1. Delete the command button "btnAction" 2. Add your own custom button and name it "btnAction" 3. Set it's index to 0 and adjust it's height c. You can copy frmMsgBox.frm and frmMsgBox.frx to the VB Templates folder to make it accessible from the 'Project/Add Form' menu The template folder is usually located at: C:\Program Files\Microsoft Visual Studio\VB98\Template\Forms ***********************************************************************************
I may add InputBox functionality to it later.
Let me know if you find any bugs![]()




Reply With Quote