1

コンボボックスからクライアントを選択すると、特定のURLが読み込まれる、コンボボックスを使用したリストの作成に取り組んでいます。問題は、リストが空白であるということです。
以下はコードですが、何が欠けているのかわかりませんが、このようなコンボボックスを作成するのはこれが初めてなので、簡単な見落としかもしれません。

public partial class Form1 : Form
{
    List<MyClient> clients;
    public Form1()
    {
        InitializeComponent();
        clients = new List<MyClient>();
        clients.Add(new MyClient { ClientName = "Client 1", UrlAddress = @"http://www.google.com" });
        BindBigClientsList();
    }

    private void BindBigClientsList()
    {
        BigClientsList.DataSource = clients;
        BigClientsList.DisplayMember = "ClientName";
        BigClientsList.ValueMember = "UrlAddress";
    }

    private void BigClientsList_SelectedIndexChanged(object sender, EventArgs e)
    {
        MyClient c = BigClientsList.SelectedItem as MyClient;
        if (c != null)
        {
            string url = c.ClientName;
            Process.Start(url);
        }
    }
}
class MyClient
{
    public string ClientName { get; set; }
    public string UrlAddress { get; set; }
}
4

2 に答える 2

2

最後の行がありません:DataBind

private void BindBigClientsList()
{
    BigClientsList.DataSource = ClientSize;
    BigClientsList.DisplayMember = "ClientName";
    BigClientsList.ValueMember = "UrlAddress";
    BigClientsList.DataBind;
}
于 2012-09-12T20:37:38.737 に答える
1

コンストラクターは次のようになります

public Form1() 
    { 
        InitializeComponent(); 
        List<MyClient> clients = new List<MyClient>(); 
        clients.Add(new MyClient { ClientName = "Client 1", UrlAddress = @"http://www.google.com" });
        foreach(MyClient client in clients)
        {
            BigClients.Items.Add(client);
        } 
    }

これにより、2つのことが追加されます。

  • オブジェクトをComboBoxに追加します。それがないと、アイテムはComboBoxにどのように表示されるはずですか?
  • InitializeComponent()ステートメントの後にコードを配置します。そうしないと、MyClientオブジェクトをComboBoxに追加しようとすると、NullReferenceExceptionがスローされます。
于 2012-09-12T21:45:13.420 に答える