Click here to Skip to main content
15,908,909 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
This is my Orderform

C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Rio
{
    public partial class OrdersForm : Form
    {
        public OrdersForm()
        {
            InitializeComponent();
        }

        public void UpdateOrderList(List<string> orders)
        {
            if (InvokeRequired)
            {
                Invoke(new Action(() => UpdateOrderList(orders)));
            }
            else
            {
                listBox1.Items.Clear();
                foreach (string order in orders)
                {
                    listBox1.Items.Add(order);
                }
            }
        }
        private void Snacksbutt_Click(object sender, EventArgs e)
        {
            display.Controls.Clear();
            Fastfood sform = new Fastfood
            {
                TopLevel = false,
                FormBorderStyle = FormBorderStyle.None,
                Dock = DockStyle.Fill
            };

            display.Controls.Add(sform);
            sform.Show();
        }
        private void Mealbutt_Click(object sender, EventArgs e)
        {
            display.Controls.Clear();
            Mealform mform = new Mealform
            {
                TopLevel = false,
                FormBorderStyle = FormBorderStyle.None,
                Dock = DockStyle.Fill
            };

            display.Controls.Add(mform);
            mform.Show();
        }
        private void Drinksbutt_Click(object sender, EventArgs e)
        {
            Drinkform dform = new Drinkform(this)
            {
                TopLevel = false,
                FormBorderStyle = FormBorderStyle.None,
                Dock = DockStyle.Fill
            };
            display.Controls.Add(dform);
            dform.Show();
        }

        private void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}


this is my drinksform

C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Rio
{
    public partial class Drinkform : Form
    {
        private readonly OrdersForm _ordersForm;
        private readonly List<string> _selectedDrinks = new List<string>();

        public Drinkform(OrdersForm ordersForm)
        {
            InitializeComponent();
            _ordersForm = ordersForm;
            SetupDrinkButtons();
        }
        private void AddDrink(Button button)
        {
            if (button != null && !_selectedDrinks.Contains(button.Text))
            {
                _selectedDrinks.Add(button.Text);
                MessageBox.Show($"{button.Text} added.");
            }
        }

        private void Button11_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button1_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button7_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button3_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button6_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button12_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button30_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button5_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button4_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button2_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button13_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button14_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button15_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }
        private void Button17_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button8_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button9_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button10_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button18_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button19_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button20_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button21_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button22_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button23_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button24_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button25_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button26_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button27_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button28_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }

        private void Button29_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }


        private void Button16_Click(object sender, EventArgs e)
        {
            AddDrink(sender as Button);
        }
        private void SetupDrinkButtons()
        {
            foreach (Control control in Controls)
            {
                if (control is Button button)
                {
                    button.Click += (sender, e) => AddDrink(sender as Button);
                }
            }
        }
        
        private void ButtonSubmit_Click(object sender, EventArgs e)
        {
            if (_ordersForm != null)
            {
                _ordersForm.UpdateOrderList(_selectedDrinks);
                MessageBox.Show("Drinks sent to Orders Form.");
            }
        }
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            SetupDrinkButtons();
        }
    }
}


What I have tried:

I tried all the help that i can get but still it is still not working. please help me.
Posted
Updated 14-May-24 10:57am
v2

1 solution

Sorry, but you're doing it wrong. You should not share controls between forms. You should share data.

How? See:
Transferring information between two forms, Part 1: Parent to Child[^]
Transferring information between two forms, Part 2: Child to Parent[^]
Transferring information between two forms, Part 3: Child to Child[^]

Imagine, you have:
1) list of drinks available to order: List<Drink>
2) list of orders: List<Order>, where an Order may contain many Drinks.

Drink is not a string. Drink is an object with its own properties, like:
- name,
- ingredients,
- capacity,
- etc.

So, write all necessary classes, then define lists of them an use.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900