Dim x as Form

I'm new to objects...
I want to dynamically create a form.

If I try:
Dim x as Form
Set x = New Form1
With x
.visible = true
end with

This will only work if I have an existing (Form1) in the .vbp. Can I create a form with events and add a textbox or 2, from scratch?
Who is Participating?
HelixDaKatConnect With a Mentor Commented:
You can create a form with API in VB.

Here is a link to some code that does it:

the closest youll get is to just add a blank form to your project...you can call it frmTemplate or whatever you wish.  once it is added, you can then dynamically add controls to it.  this is my recommendation.

to truly create a blank "form" would require the use of the CreateWindow API, and creating your form window, and then writing all the necessary code, via API and CreateWindow also, to dynamically load your controls.  event handling would need to be done through the window procedure installed for the newly created window.  more ugly APIs...
Brendt HessSenior DBACommented:
Unfortunately, no.

However, what you can do is create a 'Scratch' form, containing a single instance of each control type that you need, and use this scratch form as the basis for your dynamic forms.
Object_shunAuthor Commented:
So, let me see if I understand.
If I use CreateWindow API...it is possible to create the form? (without an existing Form1)
I'd be willing to try...as the "dynamic form" will only contain 1 label, to display a message, pause, and then unload.
you are creating a true "window", not really a form object as we know it in VB.  but yes, if thats all you are after then you should be able to.  here is a sample:
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.