【问题标题】:C# Clear/Reset Listbox populated with Datasource填充有数据源的 C# 清除/重置列表框
【发布时间】:2019-03-05 14:59:47
【问题描述】:

我有一些方法可以在可以添加到客户端的多个列表框中列出各种详细信息,例如不同的罪行。下面的方法从CriminalRecord 表中选择所有罪行,其中ClientId = 选择了客户的id ,然后用这些数据填充listCriminalRecord 列表框。

private void PopulateCriminalRecord()
{
    string query = "SELECT * FROM CriminalRecord " +
            "a INNER JOIN ClientCriminalRecord b ON a.Id = b.CriminalRecordId " +
            "WHERE b.ClientId = @ClientId ORDER BY Crime ASC";

    using (connection = new SqlConnection(connectionString))
    using (SqlCommand command = new SqlCommand(query, connection))
    using (SqlDataAdapter adapter = new SqlDataAdapter(command))
    {
        command.Parameters.AddWithValue("@ClientId", newId);
        DataTable dTable = new DataTable();
        adapter.Fill(dTable);
        listCriminalRecord.DisplayMember = "Crime";
        listCriminalRecord.ValueMember = "Id";
        listCriminalRecord.DataSource = dTable;
    }
}

当用户完成输入客户的详细信息后,他们将单击一个按钮,收到一条消息等提示。

private void btnFinish_Click(object sender, EventArgs e)
{
    DialogResult result = MessageBox.Show("Are you sure you've finished & filled in all of the Client's details?", "Save and exit", MessageBoxButtons.YesNo);
    if (result == DialogResult.Yes)
    {
        DisableStep2();
        EnableStep1();
    }
}

EnableStep1(); 方法只是启用和清除一些文本框,DisableStep2(); 方法做同样的事情但禁用一些文本框。在此之后,我希望重置/清除所有列表框。我试过listCriminalRecord.Items.Clear(),但它表示错误。我不确定如何做到这一点。 任何帮助都会很棒。

【问题讨论】:

    标签: c# listbox datasource reset


    【解决方案1】:

    试试这个: listCriminalRecord.DataSource = null;

    【讨论】:

    • 收到Property or indexer cannot be assigned to -- it is read only 错误,所以我认为这不起作用
    • 好的。然后试试这个 listCriminalRecord.DataSource = null;
    • 成功了!谢谢德米特里(回答问题,以便我给你打勾)
    猜你喜欢
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    相关资源
    最近更新 更多