1

我有一个带有 ComboBox 的 Windows 窗体应用程序,并且框中有一些字符串。我需要知道当我选择一个字符串并按下我的创建按钮时,如何使该名称显示在我创建的面板中的另一个 Windows 窗体应用程序上。这是添加客户的代码

public partial class AddOrderForm : Form
{
    private SalesForm parent;

    public AddOrderForm(SalesForm s)
    {
        InitializeComponent();
        parent = s;

        Customer[] allCusts = parent.data.getAllCustomers();

        for (int i = 0; i < allCusts.Length; i++)
        {
            Text = allCusts[i].getName();
            newCustomerDropDown.Items.Add(Text);
            newCustomerDropDown.Text = Text;
            newCustomerDropDown.SelectedIndex = 0;
         }

现在,当我单击创建订单按钮时​​,我希望将上面的信息标记在我的其他 Windows 窗体应用程序上。

        private void newOrderButton_Click(object sender, EventArgs e)
        {

            //get the info from the text boxes


            int Index = newCustomerDropDown.SelectedIndex;
            Customer newCustomer = parent.data.getCustomerAtIndex(Index);              


            //make a new order that holds that info
            Order brandSpankingNewOrder = new Order(newCustomer);
            //add the order to the data manager
            parent.data.addOrder(brandSpankingNewOrder);
            //tell daddy to reload his orders
            parent.loadOrders();
            //close myself
            this.Dispose();
        }
4

1 回答 1

0

上下文对我来说不是很清楚,但是如果我做对了,您可以从 SalesForm 的实例打开 AddOrderForm 的实例,当您单击 newOrderButton 时,您想使用来自 AddOrderForm 的数据更新 SalesForm 上的某些内容。

如果是这种情况,有很多方法可以获得它,但也许需要对代码进行较少更改的方法就是这个(即使我不太喜欢它)。

制作您需要在 SalesForm 中修改的控件,public或者至少internal(查看控件属性的设计部分中的 Modifiers 属性)。这将允许您编写类似这样的内容(假设 customerTxt 是 SalesForm 中的 TextBox):

parent.customerTxt.Text = newCustomerDropDown.SelectedItem.Text;
于 2012-09-27T09:18:07.617 回答