quick easy answer for this question

J

jimi_xyz

I am kind of new to C sharp; I have a quick question I have multiple
text boxes 12 of them to be exact. What I want to do is fill them with
values that are in a array of integers. The way I am currently doing
this is like this..

input0.Text = Convert.ToString(arr[0]);
input1.Text = Convert.ToString(arr[1]);
input2.Text = Convert.ToString(arr[2]);
input3.Text = Convert.ToString(arr[3]);
input4.Text = Convert.ToString(arr[4]);
input5.Text = Convert.ToString(arr[5]);
input6.Text = Convert.ToString(arr[6]);
input7.Text = Convert.ToString(arr[7]);
input8.Text = Convert.ToString(arr[8]);
input9.Text = Convert.ToString(arr[9]);
input10.Text = Convert.ToString(arr[10]);
input11.Text = Convert.ToString(arr[11]);

What I am looking for is about 3 lines of code; something like this...

for(i = 0; i< arr.Length; i++)
{
input.Text = Convert.ToString(arr);
//NOTE: I am using as the subscript for the texboxes
}

I doubt this can be done in C sharp; but any help or ideas will be
appreciated. Also note that I posted the same message on the c-sharp
message board; but it doesn't look like it gets as much traffic as this
group does.

Thanks,
-Jimmie
 
K

Kevin Spencer

What I am looking for is about 3 lines of code; something like this...
for(i = 0; i< arr.Length; i++)
{
input.Text = Convert.ToString(arr);
//NOTE: I am using as the subscript for the texboxes
}


What youu're talking about doing is using an indexer. In order to do that,
the Controls have to be in an array or a Collection. Of course, you can put
them into one if you wish.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
We got a sick zebra a hat,
you ultimate tuna.


I am kind of new to C sharp; I have a quick question I have multiple
text boxes 12 of them to be exact. What I want to do is fill them with
values that are in a array of integers. The way I am currently doing
this is like this..

input0.Text = Convert.ToString(arr[0]);
input1.Text = Convert.ToString(arr[1]);
input2.Text = Convert.ToString(arr[2]);
input3.Text = Convert.ToString(arr[3]);
input4.Text = Convert.ToString(arr[4]);
input5.Text = Convert.ToString(arr[5]);
input6.Text = Convert.ToString(arr[6]);
input7.Text = Convert.ToString(arr[7]);
input8.Text = Convert.ToString(arr[8]);
input9.Text = Convert.ToString(arr[9]);
input10.Text = Convert.ToString(arr[10]);
input11.Text = Convert.ToString(arr[11]);

What I am looking for is about 3 lines of code; something like this...

for(i = 0; i< arr.Length; i++)
{
input.Text = Convert.ToString(arr);
//NOTE: I am using as the subscript for the texboxes
}

I doubt this can be done in C sharp; but any help or ideas will be
appreciated. Also note that I posted the same message on the c-sharp
message board; but it doesn't look like it gets as much traffic as this
group does.

Thanks,
-Jimmie
 
J

Jon Skeet [C# MVP]

I am kind of new to C sharp; I have a quick question I have multiple
text boxes 12 of them to be exact. What I want to do is fill them with
values that are in a array of integers. The way I am currently doing
this is like this..

What I am looking for is about 3 lines of code; something like this...

for(i = 0; i< arr.Length; i++)
{
input.Text = Convert.ToString(arr);
//NOTE: I am using as the subscript for the texboxes
}

I doubt this can be done in C sharp; but any help or ideas will be
appreciated. Also note that I posted the same message on the c-sharp
message board; but it doesn't look like it gets as much traffic as this
group does.


The best thing to do would be to have an array instead of 12 different
fields. You won't get a lot of designer support for it, but it's not
hard to do manually.
 
D

David Barkol

First, you should be using generics instead of an array. See:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/csharp_generics.asp

Now, for a WinForm app:

for (int i = 0; i < list.Count; i++)
{
TextBox t = (TextBox)
Controls[string.Format("TextBox{0}", i)];
t.Text = list.ToString();
}

For a WebForm app:
for (int i = 0; i < list.Count; i++)
{
TextBox t = (TextBox)
FindControl(string.Format("TextBox{0}", i));
t.Text = list.ToString();
}

David Barkol
www.neudesic.com
 
G

Guest

Hi jimi,

You actually can do this in C# with some careful control naming. Below is
some sample code that should help:

//There are 9 text boxes, what this will do is set the text in
each of the
//textboxes to the value of that textboxes index in the
form.control array.
for (int i = 1; i < 9; i++)
{
//this call will find the location of the textbox by name,
so it's important
//to note that my textboxes are named textBox1,textBox2,etc.
int controlLocation = this.Controls.IndexOfKey("textBox" +
i.ToString());

//Now we access that control through the form.control array
and change it's text
this.Controls[controlLocation].Text = i.ToString();
}

That should help you out hopefully! If this is what you were looking for
please remember to mark the thread as answered. Thanks!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top