2

重複の可能性:
(c#+ Windowsフォーム)異なるクラスのlistBoxにアイテムを追加する

form1でコンボボックスの値を取得し、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";    
}

これで、値member(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

1つの方法は、Form1.Designer.csでComboBoxを公開することです。

次に、Form2からComboBoxにアクセスします

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

で同様の答えを参照してください

他の同様の質問に対するスタックオーバーフローの回答

于 2012-11-22T16:10:49.957 に答える
0

さまざまな形式で値を渡す場合は、Asp.Netで使用できる状態管理手法の1つを使用してください。

この
http://www.codeproject.com/Articles/331962/A-Beginner-s-Tutorial-on-ASP-NET-State-Managementを参照してください

クライアント側の状態管理手法

状態制御状態の表示非表示フィールドCookieクエリ文字列

サーバー側の状態管理手法

アプリケーション状態セッション状態

ベストプラクティスとして、制御値の1つがフォーム1に厳密に依存している場合は、フォーム2をユーザーに表示しないでください...ユーザーからの入力。ドロップダウンの値が選択されていない場合は、フォーム2にページ検証を適用し、ユーザーをフォーム1にリダイレクトします。

これが[shaz]に役立つことを願っています

于 2012-11-22T16:33:11.740 に答える