You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Forms中如何实现TextBox值随两个ComboBox选择联动?

Windows Forms实现双ComboBox联动更新TextBox产量

1. 准备产量映射数据

用嵌套字典存储机器-产品-产量的对应关系,方便快速查找:

// Form级别的数据字典,存储所有机器对应各产品的产量
private Dictionary<string, Dictionary<string, int>> _productionData = new Dictionary<string, Dictionary<string, int>>()
{
    {"1", new Dictionary<string, int>() { {"a", 100}, {"b", 150}, {"c", 120} }},
    {"2", new Dictionary<string, int>() { {"a", 200}, {"b", 220}, {"c", 180} }},
    {"3", new Dictionary<string, int>() { {"a", 300}, {"b", 280}, {"c", 320} }}
};

2. 初始化ComboBox选项

在Form的Load事件或构造函数中添加机器和产品选项:

private void Form1_Load(object sender, EventArgs e)
{
    // 给机器ComboBox添加选项
    comboBoxMachine.Items.AddRange(new string[] {"1", "2", "3"});
    // 给产品ComboBox添加选项
    comboBoxProduct.Items.AddRange(new string[] {"a", "b", "c"});
}

3. 绑定联动更新事件

给两个ComboBox的SelectedIndexChanged事件绑定同一个处理方法,不管哪个控件选值变化,都会触发TextBox更新:

private void Form1_Load(object sender, EventArgs e)
{
    // 上面的初始化代码...
    comboBoxMachine.SelectedIndexChanged += UpdateProductionValue;
    comboBoxProduct.SelectedIndexChanged += UpdateProductionValue;
}

// 核心更新逻辑
private void UpdateProductionValue(object sender, EventArgs e)
{
    // 先判断两个ComboBox都选中了有效项
    if (comboBoxMachine.SelectedItem != null && comboBoxProduct.SelectedItem != null)
    {
        string machine = comboBoxMachine.SelectedItem.ToString();
        string product = comboBoxProduct.SelectedItem.ToString();
        
        // 查找对应产量,找不到则显示默认值
        if (_productionData.ContainsKey(machine) && _productionData[machine].ContainsKey(product))
        {
            textBoxProduction.Text = _productionData[machine][product].ToString();
        }
        else
        {
            textBoxProduction.Text = "0"; // 也可以设为空,按需调整
        }
    }
    else
    {
        // 有一个未选中时清空TextBox
        textBoxProduction.Text = "";
    }
}

额外优化建议

  • 把ComboBox的DropDownStyle设为DropDownList,禁止用户手动输入无效值
  • 如果机器/产品选项需要从数据库或配置文件读取,直接替换初始化ComboBox的代码即可,数据字典也可从外部数据源加载
  • 后续新增机器或产品,只需扩展数据字典,无需修改核心更新逻辑

内容的提问来源于stack exchange,提问作者Nik Ponasenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 16:32:39