• 0

Text not appearing in textBox


Question

Here is what the form looks like and its respective toolbox item name

 

Form and it's names

 

Here's the code for the Form and the class

 

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void addFlapjacks_Click(object sender, EventArgs e)
        {
            Flapjack food;
            if (crispy.Checked == true)
                food = Flapjack.Crispy;
            else if (soggy.Checked == true)
                food = Flapjack.Soggy;
            else if (browned.Checked == true)
                food = Flapjack.Browned;
            else
                food = Flapjack.Bannana;

            Lumberjack currentLumberjack = breakfastLine.Peek();
            currentLumberjack.TakeFlapjacks(food, (int)howMany.Value);
            RedrawList();
        }

        private Queue<Lumberjack> breakfastLine = new Queue<Lumberjack>();

        private void addLumberjack_Click(object sender, EventArgs e)
        {
            breakfastLine.Enqueue(new Lumberjack(name.Text));
            name.Text = "";
            RedrawList();
        }

        private void RedrawList()
        {
            int number = 1;
            line.Items.Clear();
            foreach (Lumberjack lumberjack in breakfastLine)
            {
                line.Items.Add(number + ". " + lumberjack.Name);
                number++;
            }
            if (breakfastLine.Count == 0)
            {
                groupBox1.Enabled = true;
                Lumberjack currentLumberjack = breakfastLine.Peek();
                nextInLine.Text = currentLumberjack.Name + " has " + currentLumberjack.FlapjackCount + " flapjacks.";
            }
        }

        private void nextLumberjack_Click(object sender, EventArgs e)
        {
            Lumberjack nextLumberjack = breakfastLine.Dequeue();
            nextLumberjack.EatFlapjacks();
            nextInLine.Text = "";
            RedrawList();
        }
    }

CLASS:

 

 enum Flapjack
    {
        Crispy,
        Soggy,
        Browned,
        Bannana
    }
    class Lumberjack
    {
        private string name;
        public string Name { get { return name; } }
        private Stack<Flapjack> meal;
        public Lumberjack(string name)
        {
            this.name = name;
            meal = new Stack<Flapjack>();
        }
        public int FlapjackCount { get { return meal.Count; } }

        public void TakeFlapjacks(Flapjack food, int howMany)
        {
            for (int i = 0; i < howMany; i++)
            {
                meal.Push(food);
            }
        }

        public void EatFlapjacks()
        {
            Console.WriteLine(name + "'s eating flapjacks");
            while(meal.Count > 0)
            {
                Console.WriteLine(name + " ate a " + meal.Pop().ToString().ToLower() + " flapjack");
            }
        }
    }

The problem here i'm getting is in Form1 under RedrawList() ---> nextInLine TextBox should display what ever nextInLine.Text line is equal to but nothing is being displayed in the textbox during execution, up on button click of Add flapjacks it will call RedrawList () and a mesage should be displayed in the textbox like if name = ed and howMany = 3 text displaayed should be "Ed has 3 flapjacks" not no display upon button click.

I have set the property of the textbox to Read only, 

Any Idea why there is no text in textbox ?

Link to comment
https://www.neowin.net/forum/topic/1329156-text-not-appearing-in-textbox/
Share on other sites

3 answers to this question

Recommended Posts

  • 0

 

if (breakfastLine.Count == 0)
{
    // if we get here, breakfastLine.Count == 0, right? 
    groupBox1.Enabled = true;
    // so what do you expect this line to do? There are no items to peek at, it's empty, you just verified it was
    Lumberjack currentLumberjack = breakfastLine.Peek(); 
    // Let's look at the documentation for Queue.Peek https://msdn.microsoft.com/en-us/library/system.collections.queue.peek.aspx
    // | Exception	                | Condition
    // | InvalidOperationException	| The Queue is empty. 
  
    // So an exception is always thrown and this next line is never executed
    nextInLine.Text = currentLumberjack.Name + " has " + currentLumberjack.FlapjackCount + " flapjacks.";
}

On a side note, you would do well to learn basic debugging techniques (i.e. start your program by using F5 "Start Debugging" in Visual Studio). By default Visual Studio stops execution on exceptions, highlights the offending line and shows you the details of the exception. That would have shown you right where the problem was.

 

Another basic technique would be to put a breakpoint on the line where you expect the change to happen; you would have seen it was never hit.

 

These are essential skills to develop!

  • 0
  On 26/04/2017 at 00:36, Andre S. said:

 

if (breakfastLine.Count == 0)
{
    // if we get here, breakfastLine.Count == 0, right? 
    groupBox1.Enabled = true;
    // so what do you expect this line to do? There are no items to peek at, it's empty, you just verified it was
    Lumberjack currentLumberjack = breakfastLine.Peek(); 
    // Let's look at the documentation for Queue.Peek https://msdn.microsoft.com/en-us/library/system.collections.queue.peek.aspx
    // | Exception	                | Condition
    // | InvalidOperationException	| The Queue is empty. 
  
    // So an exception is always thrown and this next line is never executed
    nextInLine.Text = currentLumberjack.Name + " has " + currentLumberjack.FlapjackCount + " flapjacks.";
}

On a side note, you would do well to learn basic debugging techniques (i.e. start your program by using F5 "Start Debugging" in Visual Studio). By default Visual Studio stops execution on exceptions, highlights the offending line and shows you the details of the exception. That would have shown you right where the problem was.

 

Another basic technique would be to put a breakpoint on the line where you expect the change to happen; you would have seen it was never hit.

 

These are essential skills to develop!

Expand  

Oh my bad i corrected it by changing

if (breakfastLine.Count == 0)  ---> if (breakfastLine.Count != 0)

 

OR to be precise

 

 if (breakfastLine.Count == 0)
            {
                groupBox1.Enabled = false;
                nextInLine.Text = "";
            }
            else   
            {
                groupBox1.Enabled = true;
                Lumberjack currentLumberjack = breakfastLine.Peek();
                nextInLine.Text = currentLumberjack.Name + " has " + currentLumberjack.FlapjackCount + " flapjacks.";
            }

 

THANK YOU for Replying

This topic is now closed to further replies.
  • Posts

    • Amazon Deal: JBL BAR 1000 7.1.4, BAR 700 5.1 Dolby Atmos wireless subwoofer soundbars by Sayan Sen If you are in the market for an audio system and are after smaller bookshelf speakers delivering highly accurate sound, then take a look at KEF and Polk Audio's Q Concerto Meta and Reserve R200 speakers, respectively, as both of them are up for sale at their lowest ever prices. However, if you are more into shaking your house, which is not possible without a subwoofer, then Samsung has its Q900F, Q800F, and Q600F soundbar systems with wireless subwoofers at the lowest prices. These are the latest 2025 models, and you can take a look at them in this article here. JBL BAR 1000 For those looking for additional options, JBL's BAR 1000 and Bar 700 are also available. The former has hit its lowest ever price too, while the latter is back to its cheapest (purchase links down below). JBL claims that its BAR 1000 model goes as low as 33Hz which is crucial for movie-watching or even some genres of music. The 10-inch subwoofer is rated at 300 watts of RMS power. The total power output of the system is 880 watts at THD (total harmonic distortion) of 1%. JBL BAR 1000 rear view Unlike the 7.1.4 JBL BAR 1000, the BAR 700 is a 5.1 system which means it lacks true Dolby Atmos, but it should still provide an Atmos-like experience. DTS:X is also not supported. The BAR 700 is rated at 620 watts. It is good to see some power ratings, as companies like Samsung, Sonos, Bose, and more tend not to mention them all too often nowadays. Interestingly, both the BAR systems have similarly-specced subwoofers so if bass is what you are looking for and do not care about the Atmos experience so much, you can opt for the BAR 700 too. Get them at the links below: JBL Bar 1000: 7.1.4-Channel soundbar with Detachable Surround Speakers, MultiBeam™, True Dolby Atmos®, and DTS:X®, Black: $799.95 (Shipped and Sold by Amazon US) JBL Bar 700: 5.1-Channel soundbar with Detachable Surround Speakers and Dolby Atmos®, Black: $549.95 (Amazon US) + you also get free 90-day Amazon Music This Amazon deal is US-specific and not available in other regions unless specified. If you don't like it or want to look at more options, check out the Amazon US deals page here. Get Prime (SNAP), Prime Video, Audible Plus or Kindle / Music Unlimited. Free for 30 days. As an Amazon Associate, we earn from qualifying purchases.
    • Funny how just a few days ago we hear a lot of rumors that this device was cancelled.
    • Many order mixed mango yogurt.  
    • It's about the same actually. The oldest iPhone to support iOS 26 will likely be the iPhone 12, which was released in late 2020, so very similar. The current OS runs on the iPhone 11, 2019. Still, valid point, you expect to be able to use a computer for longer than a phone.
  • Recent Achievements

    • Dedicated
      Epaminombas earned a badge
      Dedicated
    • Veteran
      Yonah went up a rank
      Veteran
    • First Post
      viraltui earned a badge
      First Post
    • Reacting Well
      viraltui earned a badge
      Reacting Well
    • Week One Done
      LunaFerret earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      482
    2. 2
      +FloatingFatMan
      264
    3. 3
      snowy owl
      233
    4. 4
      ATLien_0
      231
    5. 5
      Edouard
      176
  • Tell a friend

    Love Neowin? Tell a friend!