【发布时间】:2013-02-22 16:27:44
【问题描述】:
使用 VS 2012、WinForms、C#...
我有一个列表框,我想根据在组合框中选择的值来填充。我已经测试了我的 SQL 查询并且它可以工作,但是我遇到了一个奇怪的问题,当我运行我的例程时,我的 ComboBox 和我的 ListBox 都是空的。当我在cb_Session_SelectedValueChanged 例程中注释掉代码时,我的 CB 和 LB 加载得很好,但是当它没有被注释掉时,我的 LB 和 CB 最终为空白。
这就是我所拥有的:
private void cb_Session_SelectedValueChanged(object sender, EventArgs e)
{
listbox_Sessions.Visible = true;
LoadSessionListbox();
}
private void LoadSessionListbox()
{
int tempID = Convert.ToInt32(cb_Session.SelectedValue);
// Code here to load listbox, which works without above routine.
}
我错过了什么吗?为什么添加第一个例程后我的 CB 和 LB 是空白的?
[编辑]:
我将 SelectedValueChanged 中的例程放在 MouseClick 事件中,它可以工作,但不是在我想要的时候...您必须单击几次才能使用正确的 ID 重新加载它。我觉得我越来越近了,但仍然不是正确的事件。
【问题讨论】:
-
cb_Session_SelectedValueChanged可能在您的表单初始化时被调用,cb_Session.SelectedValue可能是null。由于cb_Session.SelectvedValue为空,该值正在加载到您的ListBox中。您能否发布更多代码,以便我们确切了解发生了什么? -
@IanO'Brien 我可以,我只是不确定要发布什么代码。我正沉浸在这个表单上的代码中......
-
您是否遇到了列表框引发的影响组合框的事件?您发布的 coude 看起来不错,但这还不够。 CB如何以及何时填写?
-
CB 填写在 public ThisForm() {} 例程中。 (一开始)我所有的 CB 和 LB 例程都在里面。
-
如果您不确定要发布什么代码,请发布围绕
combobox、listbox和调用它们的eventhandlers的代码。
标签: c# sql-server winforms combobox listbox