C# winform取值并接和分割

25 篇文章 1 订阅

实现如图效果
在这里插入图片描述
选择的时候选择值和描述。
存储的时候只存值
并接代码

  public void Show_Terminal()
        {
            TVTerminal.Nodes.Clear();

            exeRes = controller.GetStationInfo(combFactory.Text);
            if (!exeRes.Status)
            {
                MessageBox.Show(exeRes.Message);
                return;
            }
            dtTemp = (DataTable)exeRes.Anything;

            //string sPreLineType = "";
            string sPreLine = "";
            string sPreStage = "";
            string sPreStationType = "";


            for (int i = 0; i <= dtTemp.Rows.Count - 1; i++)
            {
                string Site = dtTemp.Rows[i]["SITE"].ToString();
                string sLine = dtTemp.Rows[i]["LINE"].ToString();
                string sStage = dtTemp.Rows[i]["STAGE"].ToString();
                string sStationType = dtTemp.Rows[i]["STATION_TYPE"].ToString() + " || " + dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();
                string sStation = dtTemp.Rows[i]["STATION_NAME"].ToString()+" || "+ dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();

                //if (sPreLineType!= sLineType)
                //{
                //    TVTerminal.Nodes.Add(sLineType);
                //    int iNodeCount = TVTerminal.Nodes.Count - 1;
                //    TVTerminal.Nodes[iNodeCount].ImageIndex = 0;

                //    TVTerminal.Nodes[iNodeCount].Nodes.Add(sLine);
                //    TVTerminal.Nodes[iNodeCount].LastNode.ImageIndex = 1;

                //    TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStage);
                //    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 2;

                //    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStationType);
                //    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 3;

                //    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.Nodes.Add(sStation);
                //    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.LastNode.ImageIndex = 4;
                //}
                //else 
                if (sPreLine != sLine)
                {
                    TVTerminal.Nodes.Add(sLine);
                    int iNodeCount = TVTerminal.Nodes.Count - 1;
                    TVTerminal.Nodes[iNodeCount].ImageIndex = 0;

                    TVTerminal.Nodes[iNodeCount].Nodes.Add(sStage);
                    TVTerminal.Nodes[iNodeCount].LastNode.ImageIndex = 1;

                    TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStationType);
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 2;

                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 3;
                }
                else if (sPreStage != sStage)
                {
                    int iNodeCount = TVTerminal.Nodes.Count - 1;
                    TVTerminal.Nodes[iNodeCount].Nodes.Add(sStage);
                    TVTerminal.Nodes[iNodeCount].ImageIndex = 2;

                    TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStationType);
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 3;

                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 4;
                }
                else if (sPreStationType != sStationType)
                {
                    int iNodeCount = TVTerminal.Nodes.Count - 1;
                    TVTerminal.Nodes[iNodeCount].LastNode.Nodes.Add(sStationType);
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.ImageIndex = 3;

                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 4;
                }
                else
                {
                    int iNodeCount = TVTerminal.Nodes.Count - 1;
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.Nodes.Add(sStation);
                    TVTerminal.Nodes[iNodeCount].LastNode.LastNode.LastNode.ImageIndex = 4;
                }
                //sPreLineType = dtTemp.Rows[i]["LINE_TYPE"].ToString();
                sPreLine = dtTemp.Rows[i]["LINE"].ToString();
                sPreStage = dtTemp.Rows[i]["STAGE"].ToString();
                sPreStationType = dtTemp.Rows[i]["STATION_TYPE"].ToString() + " || " + dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString(); 

                //if (g_sTerminalID == dtTemp.Rows[i]["TERMINAL_ID"].ToString())
                //{
                //    TVTerminal.SelectedNode = TVTerminal.Nodes[TVTerminal.Nodes.Count - 1].LastNode.LastNode.LastNode;
                //    TVTerminal.Focus();
                //}
            }
        }

并接重要代码

 string sStationType = dtTemp.Rows[i]["STATION_TYPE"].ToString() + " || " + dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();
                string sStation = dtTemp.Rows[i]["STATION_NAME"].ToString()+" || "+ dtTemp.Rows[i]["STATION_TYPE_DESC"].ToString();

分割取值代码

       private void TVTerminal_AfterSelect(object sender, TreeViewEventArgs e)
        {
            TVTerminal.SelectedNode.SelectedImageIndex = TVTerminal.SelectedNode.ImageIndex;

            //lblLineTypeName.Text = "";
            lblLineName.Text = "";
            lblStageName.Text = "";
            lblStationTypeName.Text = "";
            lblStationName.Text = "";


            if (TVTerminal.SelectedNode.Level != 3)
                return;
            //lblLineTypeName.Text = TVTerminal.SelectedNode.Parent.Parent.Parent.Parent.Text;
            //baseInfo.LineType = lblLineTypeName.Text;
            lblLineName.Text = TVTerminal.SelectedNode.Parent.Parent.Parent.Text;
            baseInfo.LineName = lblLineName.Text;
            lblStageName.Text = TVTerminal.SelectedNode.Parent.Parent.Text;
            baseInfo.StageName = lblStageName.Text;
            lblStationTypeName.Text = TVTerminal.SelectedNode.Parent.Text;
            // Add by shinecao on 2021/3/19
            lblStationTypeName.Text = lblStationTypeName.Text.Substring(0, lblStationTypeName.Text.IndexOf(" ||"));
            baseInfo.StationType = lblStationTypeName.Text;

            lblStationName.Text = TVTerminal.SelectedNode.Text;
            // Add by kero hu on 2021/3/16
            lblStationName.Text = lblStationName.Text.Substring(0, lblStationName.Text.IndexOf(" ||"));

            baseInfo.StationName = lblStationName.Text;
            //exeRes = controller.GetStationControl(baseInfo.StationName);
            //if (!exeRes.Status)
            //{
            //    MessageBox.Show(exeRes.Message);
            //}
        }

分割重要代码

  lblStationTypeName.Text = TVTerminal.SelectedNode.Parent.Text;
            // Add by shinecao on 2021/3/19
            lblStationTypeName.Text = lblStationTypeName.Text.Substring(0, lblStationTypeName.Text.IndexOf(" ||"));
            baseInfo.StationType = lblStationTypeName.Text;

实现值加描述显示

在这里插入图片描述

       private void cobLine_SelectedIndexChanged(object sender, EventArgs e)
        {
            cobStation.Items.Clear();
            if (cobLine.SelectedIndex > -1 && !string.IsNullOrWhiteSpace(cobLine.Text))
            {
                string line = cobLine.Text.Trim();
                DataTable stationDT = conn.GetPostStationByLine(line);
                if (stationDT.Rows.Count > 0)
                {
                    //foreach (DataRow item in stationDT.Rows)
                    //{
                    //    cobStation.Items.Add(item[0]);
                    //}
                    for (int i = 0; i < stationDT.Rows.Count; i++)
                    {
                        //cbxShop.Items.Add(dtTemp.Rows[i][0].ToString());
                        cobStation.Items.Add(new Metadata(stationDT.Rows[i][1].ToString(), stationDT.Rows[i][0].ToString()));
                    }
                }
            }
        }
   public DataTable GetPostStationByLine(string line)
        {
            return dal.GetPostStationByLine(line);
        }
DAL
   public DataTable GetPostStationByLine(string line)
        {  
            string sql = string.Format("SELECT A.STATION_TYPE,B.STATION_TYPE|| ' '||B.STATION_TYPE_DESC  AS STATION_TYPE_DESC FROM IMES.M_POST_LINE_STATION A left join IMES.M_STATION_TYPE B " +
                "ON B.STATION_TYPE = A.STATION_TYPE  WHERE A.ENABLED = 'Y' AND A.LINE ='{0}'", line);
            return utility.Query(sql);
        }

SQL

SELECT A.STATION_TYPE,B.STATION_TYPE|| ' '||B.STATION_TYPE_DESC  AS STATION_TYPE_DESC FROM IMES.M_POST_LINE_STATION A left join IMES.M_STATION_TYPE B 
ON B.STATION_TYPE = A.STATION_TYPE  WHERE A.ENABLED = 'Y' AND A.LINE ='Miniled-Line01'

保存取值
string glueType = ((Metadata)cmbGlueType.SelectedItem).ID;

实现值的描述同时显示

将如下没有描述的实现有描述
在这里插入图片描述

实现后效果
在这里插入图片描述

      private void Main_Load(object sender, EventArgs e)
        {
            GetStationConfig();
            string StationDesc = "";
            exeRes = controller.GetStationDesc(baseInfo.StationType);
            if (exeRes.Status)
            {
                dtTemp = new DataTable();
                dtTemp = (DataTable)exeRes.Anything;
                if (dtTemp.Rows.Count > 0)
                {
                    StationDesc = dtTemp.Rows[0][0].ToString();
                }
            }
            lblTitle.Text = baseInfo.StationName + "(" + StationDesc + ")";
            this.WindowState = FormWindowState.Maximized;


            exeRes = controller.GetOprateStep(baseInfo.StationType);
            if (!exeRes.Status)
            {
                pnlMidLeftMain.Controls.Clear();
                ErrorMSG(exeRes.Message);
                return;
            }
            exeRes = controller.GetMatTypeName();
            if(exeRes.Status)
            {
                dtTemp = new DataTable();
                dtTemp = (DataTable)exeRes.Anything;
                for (int i = 0; i < dtTemp.Rows.Count; i++)
                {
                    this.cmbMatType.Items.Add(new Metadata(dtTemp.Rows[i]["MAT_TYPE_DESC"].ToString(), dtTemp.Rows[i]["MAT_TYPE_CODE"].ToString()));
                }
            }

            SuccessMSG("Message");
            //dtTemp = new DataTable();
            //dtTemp = (DataTable)exeRes.Anything;
            //显示控件
            //CreateTp(dtTemp);
        }


       public ExecuteResult GetStationDesc(string StationType)
        {
            try
            {
                exeRes = new ExecuteResult();
                string sqlStr = @"  SELECT A.STATION_TYPE_DESC
                                      FROM IMES.M_STATION_TYPE A
                                     WHERE A.STATION_TYPE= :StationType
                                       AND A.ENABLED = 'Y' ";
                object[] para = new object[] { StationType };
                exeRes.Anything = utility.Query(sqlStr, para);

                exeRes.Status = true;
            }
            catch (Exception ex)
            {
                exeRes.Message = "Error:" + ex.Message;
                exeRes.Status = false;
            }
            return exeRes;
        }

实现文本框值相加和取文本框值的特殊字符后的数据

将Label Name 等于 Model 加Label Type 再加 Label File中.lab
在这里插入图片描述
关键代码
txtLabelTypeLabelName.Text = txtLabelTypeModel.Text + “_” + txtLabelTypeData.Text + LabelFile.Substring(LabelFile.LastIndexOf("."));

        //生成模板名称
        private void btnAdd_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            //openFileDialog.InitialDirectory = "D:\\";
            openFileDialog.Filter = "CodeSoft模板文件|*.lab|Bartender模板文件|*.btw|ZPL模板文件|*.txt";
            openFileDialog.RestoreDirectory = true;
            openFileDialog.Multiselect = true;
            openFileDialog.FilterIndex = 1;
            openFileDialog.Multiselect = false;
            

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                txtLabelTypeLabelFile.Text = openFileDialog.FileName;
                string LabelFile = txtLabelTypeLabelFile.Text;//Path.GetFileName(txtLabelTypeLabelFile.Text);
                if (LabelFile != "" || LabelFile.IndexOf(".") > 0)
                {
                    
                    txtLabelTypeLabelName.Text = txtLabelTypeModel.Text + "_" + txtLabelTypeData.Text + LabelFile.Substring(LabelFile.LastIndexOf("."));
                }
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值