一、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

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

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

浏览事件:

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

日志记录方法:

        #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

by author:Foreordination

2018-02-01 10:19:41

WinForm下的TabControl控件的更多相关文章

  1. Winform下编译Dev控件时提示license.licx文件错误

    有时候,用vs2005或2008,用到第3方控件的时候会自动生成licenses.licx.我用的是devexpress.在程序运行的时候总是出现dev的画面,很烦.在网上找了找,找到去掉画面的方法: ...

  2. Visual Studio中的TabControl控件的用法

    今天遇到了一个自己没遇到过的控件TabControl控件,所以找了点关于它的资料 TabControl属性 DisplayRect:只定该控件客户区的一个矩形  HotTrack:设置当鼠标经过页标签 ...

  3. Winform跨窗体操作控件(使用委托)

    Winform跨窗体操作控件是winform开发中很常见的形式,最常见且简单有效的方式便是使用委托的方式来进行操作,下面我将通过一个小实例来说明如何使用委托跨窗体实现控件操作. 实例介绍:两个窗体,F ...

  4. DevExpress的下拉框控件ComboBoxEdit控件的使用

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  5. DevExpress的下拉框控件LookUpEdit的使用、添加item选项值、修改默认显示值

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  6. android官方下拉刷新控件SwipeRefreshLayout的使用

    可能开发安卓的人大多数都用过很多下拉刷新的开源组件,但是今天用了官方v4支持包的SwipeRefreshLayout觉得效果也蛮不错的,特拿出来分享. 简介:SwipeRefreshLayout组件只 ...

  7. 9.2.2 .net framework下的MVC 控件的封装(下)

    控件封装的部分说明 可能有人觉得应该前后端分离,我也承认这是应该的方向,我们也在考虑使用ng2等简化前端.但是,我们封装控件还是因为如下原因综合考虑的: 我们这是个框架,上面支撑了许多个应用,包含几百 ...

  8. 9.2.1 .net framework下的MVC 控件的封装(上)

    在写.net core下mvc控件的编写之前,我先说一下.net framework下我们MVC控件的做法. MVC下控件的写法,主要有如下三种,最后一种是泛型的写法,mvc提供的控件都是基本控件. ...

  9. 分享一个 C# Winfrom 下的 OutlookBar 控件的使用

    最近在上网的时候,发现了这个C# 下的 OutlookBar 控件,看了一下感觉还真不错,特此记录一下. using System; using System.Drawing; using Syste ...

随机推荐

  1. SNMP学习笔记之SNMP介绍,OID及MIB库

    1.1.    SNMP概览 SNMP的基本知识介绍简单网络管理协议(SNMP-Simple Network Management Protocol)是一个与网络设备交互的简单方法.该规范是由IETF ...

  2. Jsp获取Java的重定向赋值(String)

    Jsp获取Java的重定向赋值(String) Java代码片段: //传递String request.setAttribute("msg", msg); //重定向 reque ...

  3. Total Difference String

    Total Difference Strings 给一个string列表,判断有多少个不同的string,返回个数相同的定义:字符串长度相等并从左到右,或从右往左是同样的字符 abc 和 cba 为视 ...

  4. JavaScript常用操作,常用类

    算术运算符 重点关注 算数,赋值,逻辑运算符,三目运算符 <!DOCTYPE html> <html> <head> <meta charset=" ...

  5. js自动小轮播

    使用定时器,换个图片地址. 从1到5换,如果大于5了再跳到1,点击停止时关闭定时器. <!-- Author: XiaoWen Create a file: 2016-12-08 13:19:2 ...

  6. 尽量少用memcpy, 多用strcpy

    一般情况下,童鞋们都喜欢用memcpy函数去传递或者备份一个数据块.这样用起来是没有多大问题的,可是如果你要用其拷贝可见字符串的时候,就用问题了,你可能拷贝到的不是你希望的字符串,甚至是原来字符串的的 ...

  7. mark一下总是记混的重定向与转发的区别

    forward内部跳转 和redirect重定向跳转的区别 1).从地址栏显示来说  forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发 ...

  8. jekins 插件离线安装

    官网插件地址:http://updates.jenkins-ci.org/download/plugins/ 系统管理->插件管理->高级 选择一个下载好的插件,然后点击上传即可 然后就会 ...

  9. Navicat+Premium+12+破解补丁

    链接:https://pan.baidu.com/s/1BsEWQ__X-RQPuw2ymfxhtg 提取码:j2kb

  10. python3.7 安装pyopengl,环境搭建

    安装环境:win10 64位操作系统,python3.7 一.安装py库 需要用pip 安装 pip install PyOpenGL PyOpenGL_accelerate 可能会报错, 是因为没有 ...