# VBForums CodeBank > CodeBank - Visual Basic 6 and earlier >  VB - An InputBox Form

## MartinLiss

The attached form looks exactly like the standard input box except that since it is a form you have full control over what you do with it. I've added the following properties to the form.


VB Code:
'   frmInputBox.ButtonClicked   ' Returns vbOK or vbCancel
                                ' depending on the button clicked
'   frmInputBox.Default         ' Returns/sets the initial value
                                ' for user input
'   frmInputBox.Display         ' Show the form modally
'   frmInputBox.PasswordProtect ' Returns/sets whether characters
                                ' typed by the user are protected
                                ' by asterisks. (If this is set to True,
                                ' it doesn't make sense to set the Default
                                ' property.
'   frmInputBox.Prompt          ' Set the InputBox Prompt value
'   frmInputBox.Title           ' Set the InputBox Caption value

Usage


VB Code:
frmInputBox.Title = "Value Entry"           
frmInputBox.Prompt = "Please enter a value"    
frmInputBox.Display   
 If vbCancel = frmInputBox.ButtonClicked  Then
    MsgBox "You pressed Cancel"
End If

----------


## agmorgan

Just being pedantic here, but is there any way of giving the OK button the 'raised' look?

 

In frmInputBox when you select the OK button it gets raised, but then has 
the dotted line around it. If you subsequently select the text box it goes flat again.
Unlike the real one.

----------


## MartinLiss

It looks to me as if the real input box behaves the same way.

----------


## agmorgan

Not quite. This is what I meant.
These images are on first load.

 

See how the real one has a darker outline?

----------


## MartinLiss

Oh. Go to frmInputBox and change the Default property of cmdButton(0) to True.

----------


## Phantom1

An InputBox form is a great idea. However, what is the point of ButtonClicked? It does not seem to do anything to unload the form. One's own code must be added. The Index of the CommandButtons could be used directly instead of having the variables btnOK and btnCancel and checking their integers. The following looks pointless.



```
Select Case Index
    Case btnOK
        ButtonClicked = vbOK
    Case btnCancel
        ButtonClicked = vbCancel
End Select
```

 :Confused:

----------


## MartinLiss

ButtonClicked is a Property that you can check from another form. For example in Form1

MsgBox frmInputBox.ButtonClicked

----------


## LaVolpe

> However, what is the point of ButtonClicked? It does not seem to do anything to unload the form. One's own code must be added.


From the code of that form, it appears that inputbox form is hidden during cmdButton_Click. The routine that calls the frmInputBox.Display should also unload frmInputBox in my opinion.



> The Index of the CommandButtons could be used directly instead of having the variables btnOK and btnCancel and checking their integers.


I think this is for convenience. You see Ok & Cancel buttons on the form, it makes sense to return a vbOk or vbCancel value instead of 0 or 1 for example. Just my opinion

For Martinliss. Suggest adding this to the Form_Unload event. Should a user unload the form by clicking the (X) close button, it will be registered as a cancel action


```
If ButtonClicked = 0 Then ButtonClicked = vbCancel
```

----------


## MartinLiss

Thanks to you both for your suggestions and comments but this is just a template that you can to with as you want.

----------


## Phantom1

> ButtonClicked is a Property that you can check from another form. For example in Form1
> 
> MsgBox frmInputBox.ButtonClicked





> I think this is for convenience. You see Ok & Cancel buttons on the form, it makes sense to return a vbOk or vbCancel value instead of 0 or 1 for example.


I understand now. 

I do not use all the properties, so I use a simpler InputBox form of my own. Nevertheless, I would not have thought of a form acting as InputBox without this thread.

 :Thumb:

----------

