2

可能重复:
(c# + windows forms)将项目添加到不同类的listBox

我想在form1中获取combobox值并在form2中使用它,因为该值会从注册用户返回另一个数据

public void povoacboxcliente()
{
    List<SM.BancoDados.BD.Model.Clientes> lstClientes = new List<SM.BancoDados.BD.Model.Clientes>();
    ClienteFlow flow = new ClienteFlow();

    lstClientes = flow.RetornaClientes();

    cboxCliente.DataSource = lstClientes;
    cboxCliente.DisplayMember = "Nome";
    cboxCliente.ValueMember = "Id";    
}

现在值成员 (Id) 将返回成员的性别,即在数据库上,这部分没问题,但我想要以另一种形式进行操作.. 这是我在 form2 上尝试的代码

public void enviasexo()
    {
        EnviarComando("0238373b3be503");
        idClient = Convert.ToInt32(cboxCliente.SelectedValue); 

        UsuarioFlow usuarioFlow = new UsuarioFlow();

        string combo = cboxCliente.SelectedValue.ToString();

        string sexo = usuarioFlow.RetornaSexo(combo);

        if (sexo == "M")
        {
            Thread.Sleep(2000);
            EnviarComando("0232343b3bdc03");
            Thread.Sleep(200); //envia comando
        }
        else if (sexo == "F")
        {
            Thread.Sleep(2000);
            EnviarComando("0232353b3bdd03");
            Thread.Sleep(200);
        }
    }

"cboxCliente" 在 form1 中使用

感谢人们!

4

2 回答 2

4

一种方法是在 Form1.Designer.cs 中公开 ComboBox

然后从 Form2 访问 ComboBox

Form Form1Object = new Form1();
Form1Object.cboxCliente.SelectedValue.ToString();

请参阅类似的答案

Stack Overflow 其他类似问题的答案

于 2012-11-22T16:10:49.957 回答
0

在以不同形式传递值时,请使用 Asp.Net 中可用的状态管理技术之一。

看到这个
http://www.codeproject.com/Articles/331962/A-Beginner-s-Tutorial-on-ASP-NET-State-Management

客户端状态管理技术

查看状态 控制状态 隐藏字段 Cookies 查询字符串

服务器端状态管理技术

应用程序状态会话状态

作为最佳实践,如果其中一个控制值严格依赖于表单 1...来自用户的输入,则不应向用户显示表单 2。如果未选择下拉列表中的值,则在表单 2 上应用页面验证并将用户重定向到表单 1。

希望这会有所帮助[shaz]

于 2012-11-22T16:33:11.740 回答