Solved

C# string from array wont show up in textbox

Posted on 2008-10-31
12
745 Views
Last Modified: 2013-12-17
Hi! Here is my problem.

I need string "One, Two, Three, Four" to show up in textBox1 but it doesn't.

I use different class files but they are in one namespace.

I would appreciate if anybody could help me correct my code.
Mario.


//Form1.cs

public partial class Form1 : Form

{

    public Form1()

    {

        InitializeComponent();

    }
 

    public void LoadMain1(object sender, EventArgs e) 

    //This is Load Event for Form1

    {   

        this.textBox1.Text = Strings.displayText;

    }
 

}
 
 

//Strings.cs

public class Strings

{
 

    public static string displayText;
 

    public Strings(string[] args)

    {
 

        string[] toppings = new string[4] { "One", "Two", "Three", "Four" };
 

        StringBuilder result = new StringBuilder();
 

        for (int i = 0; i < toppings.Length; i++)

        {

            if (i == 0)

                

            result.Append(toppings[i]);
 

            else
 

            result.Append(", ").Append(toppings[i]);

        }
 

        displayText = result.ToString();
 

     }

}

Open in new window

0
Comment
Question by:X3R
  • 6
  • 3
  • 2
  • +1
12 Comments
 
LVL 6

Expert Comment

by:RishadanPort
ID: 22854346
Try doing this modification:

this line:

result.Append(toppings[i]);

change to:

result = result.Append(toppings[i]);



and this line:

result.Append(", ").Append(toppings[i]);

change to:

result = result.Append(", ").Append(toppings[i]);
0
 
LVL 13

Expert Comment

by:sm394
ID: 22854357

string s = "";
            foreach (string str in toppings)
                s += str;

displayText=s;
0
 
LVL 8

Expert Comment

by:bramsquad
ID: 22854363
X3R,

The reason that that value is not populated is because you never set it.  It's set when you instantiate the class (in the constructor).  Without that instantiation, it will have no value.

Is there any reason why you need a static variable?  If not you can just make it public (or better yet private and add an accessor function).  Something like this:
Strings myString = new Strings();

this.textBox1.Text = myString.displayText;

Open in new window

0
 
LVL 6

Expert Comment

by:RishadanPort
ID: 22854368
Also you have something else wrong. The function that modifies it should be a static function as well.

Do something like this:


    //This is Load Event for Form1
    {
        this.textBox1.Text = Strings.parseArray( ... pass array here)
    }


public class Strings
{
 
    public static string displayText;
 
    public static string ParseArray(string[] args){
       //insert code here
    }
}


0
 
LVL 8

Expert Comment

by:bramsquad
ID: 22854398
By the way, you don't need to pass in params if they're not going to set anything in your constructor.

Something like this:

String myString = new Strings(new string[4] { "Five", "Six", "Seven", "Eight" });

will still return "One,Two,Three,Four" because you never do anything with your args[] variable.
0
 

Author Comment

by:X3R
ID: 22854882
bramsquad,

I tried yor solution but it worked in ConsoleApplication (it returned text that i need into textbox) but not with textbox.

VB2005 gave me an error:
No overload for method 'Strings' takes '0' arguments

when I added this line:
Strings myString = new Strings();
 

//I also changed 

public static string displayText;
 

//to
 

public string displayText;

Open in new window

0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 6

Expert Comment

by:RishadanPort
ID: 22854892
>No overload for method 'Strings' takes '0' arguments

That's because you declared that function

Strings(string[] args)

at this line:
Strings myString = new Strings( ... PUT string array here ...);
0
 
LVL 6

Expert Comment

by:RishadanPort
ID: 22854900

    public Strings(string[] args)
    {
        string[] toppings = new string[4] { "One", "Two", "Three", "Four" };    <-- remove this line
        ...
    }

and put it here:

string[] toppings = new string[4] { "One", "Two", "Three", "Four" };
Strings myString = new Strings(toppings);
string displayText = myString.displayText;
0
 

Author Comment

by:X3R
ID: 22854962
Now it gives me three errors:

The name 'toppings' does not exist in the current context

in this code:
for (int i = 0; i < toppings.Length; i++)

{

   if (i == 0)

                

   result = result.Append(toppings[i]);
 

   else
 

   result = result.Append(", ").Append(toppings[i]);

}

Open in new window

0
 
LVL 6

Accepted Solution

by:
RishadanPort earned 125 total points
ID: 22854964
Change the word "toppings" to the word "args"
0
 
LVL 6

Expert Comment

by:RishadanPort
ID: 22854967
This is just basic C# syntax. I suggest you to get yourself a C# book to help you.
0
 

Author Closing Comment

by:X3R
ID: 31512217
Thank you. Didn't spot the obvious ;)
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
asp.net bundle 8 36
Setting runtime form location 4 19
Showdialog 8 20
ASP.NET Web API or ASP.NET Core MVC? 3 25
Welcome my friends to the second instalment and follow-up to our Minify and Concatenate Your Scripts and Stylesheets (http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/A_4334-Minify-and-Concatenate-Your-Scripts-and-Stylesheets.html)…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now