WinForm下的TabControl控件

Posted Foreordination

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WinForm下的TabControl控件相关的知识,希望对你有一定的参考价值。

一、TabControl控件介绍

TabControl实现的具体效果:

 

在实际工作中,我是这么用TabControl控件,实现切换页面效果。比如要实现某个界面进行操作,然后还要查看一下日志,就可以使用这个TabControl控件,来实现。

 

OpenFileDialog控件的使用:

这个控件一般拖放在最下方。一般用于打开文件,浏览。比如要在文件路径下,导入一个excel文件,先点击浏览按钮,触发后弹出文件筛选器

然后,文件路径的文本框会显示该文件的具体路径,然后进行导入操作。

可以在导入的同时,将出错的信息写到日志里面,可以进行查看日志。

首先要给页面定义这几个事件:

  • 查询事件
  • 页面加载事件
  • 浏览事件
  • 日志记录。

查询事件:

#region SetData()
        private void SetData()
        {
            if (txbBKVSL.Text.Trim() != null && txbBKVOY.Text.Trim() != null && txbBKFLG2.Text.Trim() != null)
            {
                DateTime dtBegin = MessageProcess.GetDataWait();
                ParmArray parmArray = new ParmArray();
                parmArray.Add("ADotBKVSL", this.txbBKVSL.Text.ToString().Trim());//船代码
                parmArray.Add("ADotBKVOY", this.txbBKVOY.Text.ToString().Trim());//航次
                parmArray.Add("ADotBKFLG2", this.txbBKFLG2.Text.ToString().Trim());//代理
                DataSet ds = lnflibSystem.GetImportExcelData(parmArray);
                OperateUI.AddSelectColumn(ds);
                if (!OperateUI.HaveData(ds))
                {
                    MessageBox.Show("无效的船代码,航次,代理!");
                    return ;
                }
                ControlMethord.GridInfoShow(dtBegin,ds,grdList);
            }
        }
        #endregion

        #region 查询
        private void ExportExcelExport_EventQuery(object sender, EventArgs e)
        {
            SetData();
        }
        #endregion
View Code

页面加载事件:初始化页面用

#region 页面加载
        private void ExportExcelExport_Load(object sender, EventArgs e)
        {
            grdList.InitPropertiy();
        }
        #endregion
View Code

浏览事件:

#region 浏览文件
        private void ImportExcelImport_EventDetail(object sender, EventArgs e)
        {
            if (textFilePath.Text.Length > 0)
            {
                openFileDialog1.FileName = textFilePath.Text;
            }
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                textFilePath.Text = openFileDialog1.FileName;
            }
        }
        #endregion
View Code

日志记录方法:

        #region 日志记录

        #region 日志回调函数
        /// <summary>
        /// 日志回调函数
        /// </summary>
        /// <param name="text"></param>
        private delegate void SetLogTextCallback(string text);
        #endregion

        #region 写日志
        /// <summary>
        /// 写日志
        /// </summary>
        /// <param name="strMsg"></param>
        private void SetLogText(string strMsg)
        {
            // InvokeRequired需要比较调用线程ID和创建线程ID
            // 如果它们不相同则返回true
            if (this.tbInfo.InvokeRequired)
            {
                SetLogTextCallback d = new SetLogTextCallback(SetLogText);
                this.Invoke(d, new object[] { strMsg });
            }
            else
            {
                tbInfo.Text = tbInfo.Text + strMsg;
            }
        }
        #endregion

        #region 日志信息
        private void LogMessage(string strMsg)
        {
            strMsg = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + strMsg + System.Environment.NewLine;
            MessageProcess.InfoShow(strMsg);
            SetLogText(strMsg);
        }
        #endregion

        #endregion
View Code

 

by author:Foreordination

2018-02-01 10:19:41

以上是关于WinForm下的TabControl控件的主要内容,如果未能解决你的问题,请参考以下文章

TabControl美化扩展----------WinForm控件开发系列

在C#生成的winform中加tab,求解!!!

c#-winform重绘Tabcontrol控件,标签带Logo图标

如何去掉c# winform里 tabcontrol控件的边框

TabPanel美化控件----------WinForm控件开发系列

C# winform 自定义的tabControl切换tab之后 重绘tab里的每一个自定义 控件,加载速度十分慢,求解