473,834 Members | 1,870 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Adding controls at Runtime

I've got a Windows form that has a TabControl. I add TabPages to this
TabControl at Runtime, along with two Textboxes and a button. The problem
I'm having is I can't figure out how to reference the Textboxes elsewhere
once they have been created. The TextBoxes are being named based on a
private global counter (i.e. TextBox tb = new TextBox(); tb.Name = "tb" +
(counter++).ToS tring();) They are being created in a private method called
"AddTab". Anybody have any idea's?
Nov 17 '05 #1
4 1944
Hi slylos,

You can either add the TextBoxes to a list of your own or use the TabPage.Control s property to look for a Control with the right name.

On Sat, 16 Jul 2005 19:29:01 +0200, slylos <sl****@discuss ions.microsoft. com> wrote:
I've got a Windows form that has a TabControl. I add TabPages to this
TabControl at Runtime, along with two Textboxes and a button. The problem
I'm having is I can't figure out how to reference the Textboxes elsewhere
once they have been created. The TextBoxes are being named based on a
private global counter (i.e. TextBox tb = new TextBox(); tb.Name = "tb" +
(counter++).ToS tring();) They are being created in a private method called
"AddTab". Anybody have any idea's?


--
Happy coding!
Morten Wennevik [C# MVP]
Nov 17 '05 #2
That's what I can't figure out - how to create this "List". Also, using
TabPage.Control s property means I have to know the index of the textbox I'm
working with. Is there no way to keep track of these names, then use them at
runtime? i.e.

private void addcontrol()
{
Textbox t = new Textbox();
t.Name = "myBox";
tabPage1.Contro ls.Add(t);
}

private void SomeOtherMethod ()
{
myBox.Text = "Hey!!";
}

That's what I'm hoping for. If not, some way to achieve that . . .

"Morten Wennevik" wrote:
Hi slylos,

You can either add the TextBoxes to a list of your own or use the TabPage.Control s property to look for a Control with the right name.

On Sat, 16 Jul 2005 19:29:01 +0200, slylos <sl****@discuss ions.microsoft. com> wrote:
I've got a Windows form that has a TabControl. I add TabPages to this
TabControl at Runtime, along with two Textboxes and a button. The problem
I'm having is I can't figure out how to reference the Textboxes elsewhere
once they have been created. The TextBoxes are being named based on a
private global counter (i.e. TextBox tb = new TextBox(); tb.Name = "tb" +
(counter++).ToS tring();) They are being created in a private method called
"AddTab". Anybody have any idea's?


--
Happy coding!
Morten Wennevik [C# MVP]

Nov 17 '05 #3
Just create a TextBox[], or ArrayList, and put all your TabPage TextBoxes in it. Of course, you will need to know the proper index, or loop through this list or the TabPage.Control s collection and search for a specific name.

foreach(Control c in tabPage1.Contro ls)
{
if(c.Name == "myBox")
c.Text = "Hello World";
}

or using an ArrayList add your TextBoxes to this list.

foreach(TextBox tb in myArrayList)
{
if(tb.Name == "myBox")
tb.Text = "Hello World";
}

On Sun, 17 Jul 2005 00:07:02 +0200, slylos <sl****@discuss ions.microsoft. com> wrote:
That's what I can't figure out - how to create this "List". Also, using
TabPage.Control s property means I have to know the index of the textbox I'm
working with. Is there no way to keep track of these names, then use them at
runtime? i.e.

private void addcontrol()
{
Textbox t = new Textbox();
t.Name = "myBox";
tabPage1.Contro ls.Add(t);
}

private void SomeOtherMethod ()
{
myBox.Text = "Hey!!";
}

That's what I'm hoping for. If not, some way to achieve that . . .

"Morten Wennevik" wrote:
Hi slylos,

You can either add the TextBoxes to a list of your own or use the TabPage.Control s property to look for a Control with the right name.

On Sat, 16 Jul 2005 19:29:01 +0200, slylos <sl****@discuss ions.microsoft. com> wrote:
> I've got a Windows form that has a TabControl. I add TabPages to this
> TabControl at Runtime, along with two Textboxes and a button. The problem
> I'm having is I can't figure out how to reference the Textboxes elsewhere
> once they have been created. The TextBoxes are being named based on a
> private global counter (i.e. TextBox tb = new TextBox(); tb.Name = "tb" +
> (counter++).ToS tring();) They are being created in a private method called
> "AddTab". Anybody have any idea's?
>


--
Happy coding!
Morten Wennevik [C# MVP]


--
Happy coding!
Morten Wennevik [C# MVP]
Nov 17 '05 #4
That seems like a good solution, I will try that and post back on here.
Thanks for your help Morten!!

"Morten Wennevik" wrote:
Just create a TextBox[], or ArrayList, and put all your TabPage TextBoxes in it. Of course, you will need to know the proper index, or loop through this list or the TabPage.Control s collection and search for a specific name.

foreach(Control c in tabPage1.Contro ls)
{
if(c.Name == "myBox")
c.Text = "Hello World";
}

or using an ArrayList add your TextBoxes to this list.

foreach(TextBox tb in myArrayList)
{
if(tb.Name == "myBox")
tb.Text = "Hello World";
}

On Sun, 17 Jul 2005 00:07:02 +0200, slylos <sl****@discuss ions.microsoft. com> wrote:
That's what I can't figure out - how to create this "List". Also, using
TabPage.Control s property means I have to know the index of the textbox I'm
working with. Is there no way to keep track of these names, then use them at
runtime? i.e.

private void addcontrol()
{
Textbox t = new Textbox();
t.Name = "myBox";
tabPage1.Contro ls.Add(t);
}

private void SomeOtherMethod ()
{
myBox.Text = "Hey!!";
}

That's what I'm hoping for. If not, some way to achieve that . . .

"Morten Wennevik" wrote:
Hi slylos,

You can either add the TextBoxes to a list of your own or use the TabPage.Control s property to look for a Control with the right name.

On Sat, 16 Jul 2005 19:29:01 +0200, slylos <sl****@discuss ions.microsoft. com> wrote:

> I've got a Windows form that has a TabControl. I add TabPages to this
> TabControl at Runtime, along with two Textboxes and a button. The problem
> I'm having is I can't figure out how to reference the Textboxes elsewhere
> once they have been created. The TextBoxes are being named based on a
> private global counter (i.e. TextBox tb = new TextBox(); tb.Name = "tb" +
> (counter++).ToS tring();) They are being created in a private method called
> "AddTab". Anybody have any idea's?
>

--
Happy coding!
Morten Wennevik [C# MVP]


--
Happy coding!
Morten Wennevik [C# MVP]

Nov 17 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
3736
by: avivgur | last post by:
Hello, I am writing a program in Visual C# and I have encountered a problem. In my program I want to dynamically create a multitude of controls (thousands) on a form. The problem is that calling the Controls.Add() method several times or even calling the Controls.AddRange() method once can take a huge amount of time. Therefore, I would like to be able to run the loop that creates the controls on a different thread and meanwhile give the user...
8
4845
by: Thomas H. | last post by:
Hi folks, what's the best way to add (web)controls at runtime ?? TIA T.H.
2
1521
by: Mark Siffer | last post by:
I am trying to add a compare validator at runtime. I would add it before but my input controls are built at runtime via an editable datagrid. Therefore, the names of the controls are not known until the page has been rendered. Any ideas? Thanks in advance MS
0
2038
by: Kurt | last post by:
Hi Brent, I don't know if this is best practices per se`, but it works. The following generates a new button control each time menu item 1 is clicked and assigns an event handler to it. Each button uses the same default event handler. In this case, when a button is clicked I simply display
4
1979
by: rushikesh.joshi | last post by:
Hi All, I have created my own WebControl and want to add it in my aspx page at runtime. it's compiling perfectly, but when i m going to execute, it gives me error of "Object reference not set to an instance of an object." in my server control (ascx.cs file)
3
2096
by: Toe Dipper | last post by:
In short we have a lengthy process when a form is loaded that adds activex controls to our windows form. This process in itself works fine however we would like to push this processing to a thread but are stumped so far. Our goal is simply to allow the form to fully display while the controls are being added. Preferrably with a progressbar to let them know that the form is still being built. Here are some snippets.
0
1447
by: sonic | last post by:
I am trying to dynamically load a validator and must be missing something elementary here. I extended TextBox control to add some functionality to it. One new feature it contains is IsRequired property. if true, the control will render it self differently, and should add a RequiredFiledValidator control to the page. so in my controls render event, i am adding the following:
11
18161
by: Pete Kane | last post by:
Hi All, does anyone know how to add TabPages of ones own classes at design time ? ideally when adding a new TabControl it would contain tab pages of my own classes, I know you can achieve this with ListView columns so it should be doable, thanks
6
11093
by: | last post by:
I have made some user controls with custom properties. I can set those properties on instances of my user controls, and I have programmed my user control to do useful visual things in response to how those properties are set. I want to be able to do two other things: a) add User control instances to my page, filling in the place of placeholder controls, and b) programmatically setting custom properties on those dynamically spawned...
0
10793
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10509
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
10219
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9331
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7757
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6954
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5793
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4427
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3977
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.