【问题标题】:ComboBox2 get fields in function of ComboBox1ComboBox2 获取 ComboBox1 函数中的字段
【发布时间】:2020-01-13 09:48:01
【问题描述】:

我必须选择一个品牌的摩托车。如果我选择“KTM”,我想获得 Ktm 的摩托车。如果我选择“HVA”,我想要 HVA 的摩托车。等等..

我有一个包含所有模型的模型列表,在我选择的功能中,我想添加这个品牌的模型并将其返回到我的 ComboBox2 中。

Modele.cs:

类模型

 {
        public string NomModele;

    public static List<Modele> lesModeles = new List<Modele>() {

        // Husqvarna
        new Modele() { NomModele = "TE"},
        new Modele() { NomModele = "FE"},

        // KTM
        new Modele() { NomModele = "EXC"},
        new Modele() { NomModele = "EXC-F"}
    };

    public Modele() { }

    public Modele(string NomModele)
    {
        this.NomModele = NomModele;
    }
}

Main.cs:

namespace SuiviEntretien
{
    public partial class SuiviEntretien : Form
    {
        public SuiviEntretien()
        {
            InitializeComponent();

        this.lesMarques.Items.AddRange(Marque.lesMarques.Select(x => x.NomMarque).ToArray());
        this.lesModeles.Items.AddRange(Modele.lesModeles.Select(x => x.NomModele).ToArray());
    }

    private void SuiviEntretien_Load(object sender, EventArgs e)
    {

    }

    private void SauvegarderMoto_Click(object sender, EventArgs e)
    {
        try
        {
            Moto maMoto = new Moto(
                maMarque.Text = lesMarques.SelectedItem.ToString(),
                monModele.Text = lesModeles.SelectedItem.ToString()
                );
            MessageBox.Show("Moto enregistrée avec succès !", "Information");
            tabControl1.SelectTab(MaMoto);
        }
        catch(Exception)
        {
            MessageBox.Show("Il manque des informations !", "Information");
        }
    }
}
}

感谢您的进一步帮助。

【问题讨论】:

    标签: c# list combobox


    【解决方案1】:

    以下答案是根据一些假设得出的,这些假设是:

    -You have a ComboBox that contains values, when a value is selected another ComboBox needs to re-populate itself with a new list of data.

    根据这个问题的规模,我会推荐两种解决方案。将您的数据移动到关系数据库并相应地访问它,然后将您的第一个 ComboBox 填充为所有主键的列表。 (一对多方法)然后根据第一个 ComboBox 值填充您的第二个 ComboBox。

    假设您想要动态构建列表并且想要避免使用数据库,那么只需根据 ComboBox 是否更改来使用功能。

    private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e) {
    if (ComboBox1.Text == "KTM")
    {
        // Populate ComboBox2 with KTM data.
    } 
    else
    {
       // Populate ComboBox2 with some other data.    
    }
    }
    

    这应该可以帮助你。

    【讨论】:

    • 感谢您的帮助。它工作得很好。但是写一个函数来调用这段代码而不是写在 Main 是不可能的?
    猜你喜欢
    • 2012-11-18
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多