应用程序的高级视图是:
DataSource中有一个表,包含所有案例类型(即CaseType1,CaseType2,CaseType3)。
然后我使用ComboBox,并在实例化表单时使用DataSource中的所有案例类型填充它。我的ComboBox设置如下:
DataSource:设置为我的CaseTypeBindingSource,它包含我需要的列和数据。 DisplayMember:正在使用的查询结果。 ValueMember:正在使用的查询结果。 (与DisplayMember相同) SelectedValue:我尝试使用“none”并使用与DisplayMember和ValueMember相同的值。
问题在于:
在运行时,我希望能够将从Form1引入的客户端案例类型指定为当前在ComboBox(SelectedItem)中选择的项目。
我可以将案例类型分配给文本框并完成它。但我的想法是,我希望表单向用户显示客户端的案例类型,并允许他/她使用ComboBox更改它。
ComboBox名称是CaseTypeComboBox。保存案例类型信息及其属性的对象是client.CaseType。
我在构造函数中尝试了以下内容:
CaseTypeComboBox.SelectedItem = client.CaseType;
我还尝试在Form2中创建一个名为origCaseType的类变量,将client.CaseType值赋给构造函数中的origCaseType类变量。然后在Form2_Load(...)事件触发时执行以下操作:
CaseTypeComboBox.SelectedValue = origCaseType;
有没有人对此有任何想法?有类似的经历吗?
如果有任何需要澄清的话,请告诉我,我们非常感谢您的帮助。
提前致谢!
TS
“Form2”构造函数:
public ModifyCase(Client client)
{
InitializeComponent();
CaseNumberTextBox.Text = client.CaseNumber;
LoadStatusComboBox(client.Status);
LoadIsClosedRadioButton(client.IsClosed);
LoadIsInStorageRadioButton(client.IsInStorage);
LastModifiedTextBox.Text = client.LastModified.ToString();
NotesTextBox.Text = client.Notes;
origCaseType = client.CaseType;
}
“Form2”加载事件:
private void ModifyCase_Load(object sender, EventArgs e)
{
//Fills the ComboBox box with case types
this.case_typesTableAdapter1.Fill(this.testDataSet1.case_types);
//Attempts to set value for client's case type from Form1
CaseTypeComboBox.SelectedValue = origCaseType;
//Just to help me see what these variables are holding to figure
//out the problem...
MessageBox.Show(origCaseType);
MessageBox.Show(CaseTypeComboBox.SelectedIndex.ToString());
}
答案 0 :(得分:0)
我做了两个小调整就行了!问题是我已将SelectedItem和SelectedValue设置为我正在使用的DataSource列。除此之外,所需的只是将这两个值设置为“none”,并将ValueMember和DisplayMember设置为DataSource列。谢谢你的时间wdavo!