我有一个包含2个数据绑定列表框和两个数据绑定组合框的表单。我正在使用类型化数据集。控件绑定到一对表,其中包含来自此schema的以下架构和数据。一个listbox
和一个comboBox
绑定到bar
表;另一个listbox
和comboBox
绑定到foo
表。
当selectIndexChanged事件触发foo listBox
时,我会获得条形listBox
和comboBox
中所选文本的当前值。
但是,当我使用foo comboBox
并尝试访问barComboBox.SelectedText
事件中的FooComboBox_SelectedIndexChanged
时,我会从SelectedText
获取之前选择的值而不是新值。 BarListBox.Selected
给出了当前值。
请注意,我使用FooListBox
进行选择,两个事件处理程序都按预期运行。
任何人都可以解释这里发生了什么以及如何解决这个问题?
带有示例数据的表单截图:
数据集设计师:
form1.cs代码:
//Standard using statements and namespace info
public partial class Form1 : Form
{
//Loading DataSets and initializing here
private void FooListBox_SelectedIndexChanged(object sender, EventArgs e)
{
Console.WriteLine("The value in the bar ListBox is {0}", barListBox.Text);
}
private void FooComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
Console.WriteLine("The value in the bar comboBox is {0}", barComboBox.Text);
}
}
答案 0 :(得分:0)
我没有找到你解释的任何行为。
请检查此代码,请更正我转载的代码是错误的。我使用了Combo Box项目,ListBox项目在FormLoad中添加为来自某些webServiceMethod的数据源
Form1.Designer.cs中的
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.listBox1 = new System.Windows.Forms.ListBox();
this.SuspendLayout();
//
// comboBox1
//
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Location = new System.Drawing.Point(32, 55);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(188, 21);
this.comboBox1.TabIndex = 0;
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
//
// listBox1
//
this.listBox1.FormattingEnabled = true;
this.listBox1.Location = new System.Drawing.Point(261, 55);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(255, 95);
this.listBox1.TabIndex = 1;
this.listBox1.SelectedIndexChanged += new System.EventHandler(this.listBox1_SelectedIndexChanged);
Form1.cs中的* *
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("The value in the bar comboBox is "+ comboBox1.Text);
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("The value in the bar comboBox is "+ listBox1.Text);
}
private void Form1_Load(object sender, EventArgs e)
{
WebServiceRef.CM_ServiceSoapClient soapClient = new WebServiceRef.CM_ServiceSoapClient();
comboBox1.DataSource = soapClient.GetAllCategories();
listBox1.DataSource = soapClient.GetAllCategories();
}
我已经根据数据源表单WebService方法更改了数据,但是当你提醒你的行为时,我没有发现任何问题。