• 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

    • A rotten article full of handwaving of anti-consumer practices. Aside from the fact that no, not even close to every piece of major software collects information about its users, ethical developers make such telemetry opt-in and allow it to be completely disabled. To use KDE Plasma as an example, you're shown a greeter upon first boot that gives users the option to send the developers telemetry, with the default being off and 'off' actually meaning off. Windows 10 has never offered that capability - only a promise that Microsoft will slurp up less of your data if you spend time tweaking 50 different privacy settings. There is still absolutely no way to completely opt out of sending Microsoft telemetry in any version of Windows 10 (or 11, naturally). Even using group policy in Enterprise editions only allows you to reduce telemetry to the bare minimum. Home-focused editions don't even get that option. Articles like this dismissing user privacy concerns as "FUD" are a part of the reason Microsoft felt confident enough to go so much further with Windows 11. I guess you get what you deserve in that respect. Personally, I finally made the move to Linux after 15 years or so of dabbling with it, but never really considering a permanent switch. Enjoy your bright, shiny Windows future. You asked for it, after all.
    • Microsoft shares Defender update for new Windows 11/10 ISO installs by Sayan Sen Aside from new Windows setup and recovery updates, Microsoft has also published a new Defender update for Windows 11/10/Server installation images this week. This update package is necessary as a Windows installation image may contain old, outdated anti-malware definitions and software binaries. Aside from better security, these updates can also provide improved performance benefits in some cases. When a new Windows installation is set up, there may be a temporary security risk due to outdated Microsoft Defender protection in the OS installation images. This happens because the antimalware software included in these images might not be up to date. Thus Microsoft says that these updated definitions essentially help close this protection gap. Microsoft delivered the latest security definitions for Windows images via security intelligence update version 1.431.54.0. The Defender package version is also the same. It applies to Windows 11, Windows 10 (Enterprise, Pro, and Home editions), Windows Server 2022, Windows Server 2019, and Windows Server 2016. Microsoft writes: From Microsoft's security bulletin, we learn that the security intelligence update version 1.431.452.0 was released this past week adds threat detections for various backdoor and phishing exploits, trojans, and more. For those wondering, the latest intelligence update is version 1.431.155.0 at the time of writing.
    • Probably.   You'll probably want to see what channels you'd pick up by entering your zip code here... https://www.channelmaster.com/pages/free-tv-channels   With respect to the antenna and box you selected... no idea.  They are both non-brand names and cheap.  So...sure.  I have no idea how that box records...but it's listed as a feature. Also...I have no recommendations.  I haven't recorded from a cable box (ClearQAM) in over 10 years (maybe 20?).  This was Windows Media Center/MythTV days.  My Hauppauge is just collecting dust somewhere in my expansion slot bin.
    • Yea, I tried to do that with my janky WINDOWS MEDIA CENTER Frankenstein, and it failed miserably.
    • Right next to you, buddy, we can go together 😄, God knows you need it more than me!
  • Recent Achievements

    • First Post
      smileyhead earned a badge
      First Post
    • One Month Later
      K V earned a badge
      One Month Later
    • Week One Done
      K V earned a badge
      Week One Done
    • Dedicated
      CarlosABC earned a badge
      Dedicated
    • One Month Later
      solidox earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      640
    2. 2
      ATLien_0
      240
    3. 3
      Xenon
      172
    4. 4
      neufuse
      155
    5. 5
      +FloatingFatMan
      123
  • Tell a friend

    Love Neowin? Tell a friend!