m0_65167764 2022-11-18 16:35 采纳率: 77.3%
浏览 7
已结题

这个效果如何实现,如何做

img

提示:使用数组 存储信息,事件为change。

烟台火车站:

烟台站、烟台南站、烟台西站、桃村站、海阳北站、桃村北站、徐家店站

青岛火车站:

青岛站、青岛北站、青岛西站、莱西站、董家口站

威海火车站:

威海站、荣成站、文登东站、威海北站、乳山站、文登站

  • 写回答

3条回答 默认 最新

  • Check_Const 2022-11-19 17:20
    关注

    img

    
    C# winForm简单模拟实现:
    
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Collections;  //使用ArrayList
    
    namespace Check009
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            #region 自定义查找某个字符第几次出现的位置
            public static int Get_StrIndexOf(string p_Str, char p_Char, int p_n)
            {
                int v_Count = 0;
                int v_n = 0;
                for (int i = 0; i < p_Str.Length; i++)
                {
                    if (p_Char == p_Str[i]) v_Count++;
                    if (v_Count == p_n)
                    {
                        v_n = i;
                        break;
                    }
                }
                return v_n;
            }
            #endregion 自定义查找某个字符第几次出现的位置
    
            public ArrayList v_RegionName = new ArrayList();  //保存地市
            public ArrayList v_StationName = new ArrayList(); //保存车站
    
            private void Form1_Load(object sender, EventArgs e)
            {
                #region 数据源
                //假设 地区表RegionList(RegionID,RegionName) 和 站表RailwayStation(RegionID,StationID,StationName)
                //从数据库表读入,或参考以下手工创建数据测试
    
                v_RegionName.Add("烟台");
                v_RegionName.Add("青岛");
                v_RegionName.Add("威海");
    
                v_StationName.Add("烟台,烟台站");
                v_StationName.Add("烟台,烟台南站");
                v_StationName.Add("烟台,烟台西站");
                v_StationName.Add("烟台,桃村站");
                v_StationName.Add("烟台,海阳北站");
                v_StationName.Add("烟台,桃村北站");
                v_StationName.Add("烟台,徐家店站");
                v_StationName.Add("青岛,青岛站");
                v_StationName.Add("青岛,青岛北站");
                v_StationName.Add("青岛,青岛西站");
                v_StationName.Add("青岛,莱西站");
                v_StationName.Add("青岛,董家口站");
                v_StationName.Add("威海,威海站");
                v_StationName.Add("威海,荣成站");
                v_StationName.Add("威海,文登东站");
                v_StationName.Add("威海,威海北站");
                v_StationName.Add("威海,乳山站");
                v_StationName.Add("威海,文登站");
                #endregion 数据源
    
                #region 控件内容初始化
                for (int i=0; i < v_RegionName.Count; i++)
                {
                    comboBox_RegionName.Items.Add(v_RegionName[i].ToString());  //地区
                }
                //comboBox_RegionName.DropDownStyle = ComboBoxStyle.DropDownList;
                comboBox_RegionName.SelectedIndex = 0;  //默认值
    
                comboBox_StationName.DropDownStyle = ComboBoxStyle.DropDownList;
                #endregion  控件内容初始化
            }
    
            #region 利用comboBox的TextChanged事件:当地区变化时,对应站点内容变更
            private void comboBox_RegionName_TextChanged(object sender, EventArgs e)
            {
                int n = 0;
                if (comboBox_RegionName.Text != "")
                {
                    for (int i = 0; i < v_StationName.Count; i++)
                    {
                        n = Get_StrIndexOf(v_StationName[i].ToString(), Convert.ToChar(","), 1);  //取分隔符位置
    
                        if (v_StationName[i].ToString().Substring(0, n) == comboBox_RegionName.Text)
                            comboBox_StationName.Items.Add(v_StationName[i].ToString().Substring(n + 1,
                                                           v_StationName[i].ToString().Length - n - 1));  //取站名称 依需求
                    }
                }
            }
            #endregion
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月21日
  • 已采纳回答 11月21日
  • 创建了问题 11月18日

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值