Hi I am looking to create controls at run time but with a bit more complexity:
I have collection of controls that I want to duplicate at runtime and then access, say:
2 text boxes
2 labels
1 Button
What is the best way of grouping them for easy access? Can I create a class that makes these items and then I just make a new class every time I want make a new set of controls?
The best option is designing an UserControl and create it at runtime all the times you need.
Designing an UserControl allows you to include that textboxes, labels, button and group them like you want.
Check this at MSDN:
Creating a Windows Form User Control
Related
I have a form A in VB.net which inherits another form B. There are 8 controls in Form B, out of which only 4 controls are required in Form A. But in Form A, all the 8 controls are visible in designer view. Their Visible property is set to false which makes them invisible at run time. But I dont want to see them on the form in design view also. Is there any way of doing it ?
If a form actually contains some controls, making them invisible in the designer is poor practice and potentially dangerous. Form A becomes heavier for no reason (those controls still get loaded!), and if there's any problems in Form B's unique controls, you could start encountering weird behaviour in Form A that you can't figure out unless you magically know to look in the document outline for the "hidden" controls.
The correct thing to do is to create a Form C containing only the 4 shared controls (plus whatever code they need), then have both Form A and Form B inherit from it.
In PageLoad event , you can set visibility of remaining controls that you dnt need in Form A.
In design mode,If your controls are overlap each other you can manage hide and showing controls with Right-click on controls and select Send to Back or Bring to Front
I am trying to create a user control and custom designer. The perfect example of what I am trying to achieve in design time is how the menuStrip allows you to enter the text of the item being added.
This tells me it is possible, but I do not know if they are just drawing a box/cursor and just handling the key events individually or if they are using a textBox control in the designer somehow.
Is there a way to use controls in the designer during design time?
I need to create combobox containing items with checkbox. This is winform VB.NET application.
I found some options but, those are in c# and also, in separate library.
I need some simple way like some single class which allow me to create item with checkbox and iterate checked items.
can any one suggest me way ?
Thank You
I am trying to broaden my knowledge of user controls or to be more specific, composite user controls. Msdn has a walkthrough on the subject here which although not in VB is easy enough to follow and get results.
What I had had in mind was to create a base user control comprised of a split panel, one half of which would be used to display dynamic help and the other half which could house whatever controls the new user control which would inherit from this required. The problem that I am facing is that when I then create a new inherited control based upon my base control I cannot add new controls to the design surface. If I don't have a split panel filling the entire design surface of the base control I can add new controls, but if I do I can't.
Either I am doing something wrong, or more likely failing to do something on the base control that I ought to do , or this can't be done which I find odd to believe. I'm hoping someone can explain what it is I've missed.
This is being targeted at winforms with vb.
Thanks
Well, Did you make the split panel's modifier to protected or protected internal or public? That should do the trick.
By default it is private and so designer will prevent you from accessing it.
How do I set a number in a up/down box then press a button to show me a second form with the amount of fields (like labels with text boxes) defined in the up/down box? I'm new to programming so try to explain in really simple terms if you can. Thanks
Code based solution you can implement now
Container controls in VB.Net inherit usually inherit from Panel control which owns a collection by name Children.
You can add dynamically created controls to this collection to create the second form.
Complex but technically sound solution
Invest sometime to learn XAML and create XAML templates to this job for you. Refer the link here which solves same problem in C#.