我在Visual Studio中有一个组合框,我在组合框中编辑了字符串以显示5个项目,我试图在线查看,一旦有人点击其中一个项目,就会显示有关该项目的信息。 (但如果没有点击任何项目,则将表格留空)
例如,Whirlpool的冰箱可以冷却到1摄氏度,价格为400美元,并在24小时内送达。
因此,一旦有人在组合框中单击“Whirlpool Fridge”,它就会在表单标签/文本框中弹出
制造商:惠而浦 最大冷却:1摄氏度 费用:400美元 交货期:24小时内
另外,我试图找到是否可以在图片框中显示冰箱的图片。然而,我没有遇到过这方面的解决方案。
我非常感谢你的帮助,很抱歉让你对这个问题感到厌烦!
注意:如果您要将我链接到某个网站,我会很感激,如果您至少可以解释如何做到这一点,或者对于喜欢勺子喂食勺的其他人,只需将其粘贴起来即可我会搞清楚的。再次感谢你! <:d
编辑:
我正在使用Windows窗体应用程序
答案 0 :(得分:2)
通过数据绑定,您可以更简单的一种方法。
假设您有一个设备对象:
public class Appliance
{
public string Make { get; set; }
public string ApplianceType { get; set; }
public string Model { get; set; }
public double Price { get; set; }
public string Info { get; set; }
public string ShowString
{
get { return String.Format("{0} {1}", Make, ApplianceType); }
}
}
并且您希望将这些列表绑定到组合框。您可以定义组合框中显示的属性,并将所选对象强制转换回类:
List<Appliance> appliances = new List<Appliance>();
// populate list; for example:
appliances.Add(new Appliance
{
Make = "Whirlpool",
ApplianceType = "Fridge",
Model = "WP-300",
Price = 500.00,
Info = "Cools to 4C!"
});
appliances.Add(new Appliance
{
Make = "Maytag",
ApplianceType = "Dishwasher",
Model = "MT-80A",
Price = 400.00,
Info = "Washes spot free!"
});
cmbApplianceList.DataSource = appliances;
cmbApplianceList.DisplayMember = "ShowString";
(还有ValueMember
你可以绑定到一个独特的属性。)
当有人选择组合框中的某个项目时,您可以执行以下操作来对所选课程执行操作:
cmbApplianceList_SelectedIndexChanged(object sender, EventArgs e)
{
Appliance selectedAppliance = (Appliance)cmbApplianceList.SelectedItem;
MessageBox.Show(selectedAppliance.Info);
}
在这种情况下,消息框会显示所选设备的Info
属性。
答案 1 :(得分:0)
创建一个新的Windows窗体,将所需的值作为参数。
public partial class MyItemForm : Form
{
public myItemForm(string item, double costs, int time, string picturepath)
{
InitializeComponent();
label1.Text = item+ ": 1 Celsius Cost: $"+costs.ToString()+" Delivery: Within "+time.toString() +" hours."
pictureBox1.ImageLocation = picturepath;
}
}
表单只接受参数,将它们设置为LabelText。 图片路径也是如此。
总的来说,你必须做这样的事情:
private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MyItemForm itemform = new MyItemForm(ComboBox1.Text, getCosts(ComboBox1.SelectedIndex), getTime(ComboBox1.SelectedIndex), getPicturePath(ComboBox1.SelectedIndex));
itemform.Show();
}
因此,每当用户更改ComboBox中的Item时,都会调用该事件。 你必须自己弄清楚get方法。
我希望它很清楚。
记住:这是一个例子!你必须自己找出正确的代码。