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
页面加载事件:初始化页面用
#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控件的更多相关文章
- Winform下编译Dev控件时提示license.licx文件错误
有时候,用vs2005或2008,用到第3方控件的时候会自动生成licenses.licx.我用的是devexpress.在程序运行的时候总是出现dev的画面,很烦.在网上找了找,找到去掉画面的方法: ...
- Visual Studio中的TabControl控件的用法
今天遇到了一个自己没遇到过的控件TabControl控件,所以找了点关于它的资料 TabControl属性 DisplayRect:只定该控件客户区的一个矩形 HotTrack:设置当鼠标经过页标签 ...
- Winform跨窗体操作控件(使用委托)
Winform跨窗体操作控件是winform开发中很常见的形式,最常见且简单有效的方式便是使用委托的方式来进行操作,下面我将通过一个小实例来说明如何使用委托跨窗体实现控件操作. 实例介绍:两个窗体,F ...
- DevExpress的下拉框控件ComboBoxEdit控件的使用
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- DevExpress的下拉框控件LookUpEdit的使用、添加item选项值、修改默认显示值
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- android官方下拉刷新控件SwipeRefreshLayout的使用
可能开发安卓的人大多数都用过很多下拉刷新的开源组件,但是今天用了官方v4支持包的SwipeRefreshLayout觉得效果也蛮不错的,特拿出来分享. 简介:SwipeRefreshLayout组件只 ...
- 9.2.2 .net framework下的MVC 控件的封装(下)
控件封装的部分说明 可能有人觉得应该前后端分离,我也承认这是应该的方向,我们也在考虑使用ng2等简化前端.但是,我们封装控件还是因为如下原因综合考虑的: 我们这是个框架,上面支撑了许多个应用,包含几百 ...
- 9.2.1 .net framework下的MVC 控件的封装(上)
在写.net core下mvc控件的编写之前,我先说一下.net framework下我们MVC控件的做法. MVC下控件的写法,主要有如下三种,最后一种是泛型的写法,mvc提供的控件都是基本控件. ...
- 分享一个 C# Winfrom 下的 OutlookBar 控件的使用
最近在上网的时候,发现了这个C# 下的 OutlookBar 控件,看了一下感觉还真不错,特此记录一下. using System; using System.Drawing; using Syste ...
随机推荐
- oracle、Mysql数据库客户端DbVisualizer安装
原文链接:https://jingyan.baidu.com/article/454316ab675302f7a7c03a9e.html
- 20165310 预备作业3 Linux安装及学习
预备作业3 Linux安装及学习 安装虚拟机 之前在win7系统下通过EasyBCD安装过Ubuntu虚拟机,这次阅读<基于VirtualBox虚拟机安装Ubuntu图文教程>又学习到了一 ...
- JavaScript:Array属性方法
,,,,]; console.dir(arr); var pro=Object.getPrototypeOf(arr); console.dir(pro); 来一个个的查看数组的属性,方法 1.Arr ...
- POJ 3694 Network(并查集缩点 + 朴素的LCA + 无向图求桥)题解
题意:给你一个无向图,有q次操作,每次连接两个点,问你每次操作后有几个桥 思路:我们先用tarjan求出所有的桥,同时我们可以用并查集缩点,fa表示缩点后的编号,还要记录每个节点父节点pre.我们知道 ...
- POJ 1751 Highways(最小生成树&Prim)题解
思路: 一开始用Kruskal超时了,因为这是一个稠密图,边的数量最惨可能N^2,改用Prim. Prim是这样的,先选一个点(这里选1)作为集合A的起始元素,然后其他点为集合B的元素,我们要做的就是 ...
- BZOJ4415: [Shoi2013]发牌 树状数组+二分
Description 假设一开始,荷官拿出了一副新牌,这副牌有N张不同的牌,编号依次为1到N.由于是新牌,所以牌是按照顺序排好的,从牌库顶开始,依次为1, 2,……直到N,N号牌在牌库底.为了发完所 ...
- 【Coursera】Fourth Week(2)
Netscape JavaScript and Firefox 当Microsoft收购Netscape失败之后: JavaScript 创造并用于与 Visual Basic 竞争(1995). N ...
- C++小结:迟到的小结和重新起航的故事
迟到的小结和重新起航的故事 有关这个学期的故事,随着这个学期的结束也划上了一个句号. 正如之前博客里面(还是空间里面)提到的,在这个过程中的收获比最后考试的结果更重要. 就像这次的计算器,也许会对最后 ...
- HDU 6162 Ch's gift(树链剖分+线段树)
题意: 已知树上的每个节点的值和节点之间的关系建成了一棵树,现在查询节点u到节点v的最短路径上的节点值在l到r之间的节点值的和. 思路: 用树链剖分将树映射到线段树上,线段树上维护3个值,max,mi ...
- UVa 815 洪水!
https://vjudge.net/problem/UVA-815 题意:一个n*m的方格区域,共有n*m个方格,每个方格是边长为10米的正方形,整个区域的外围是无限高的高墙,给出这n*m个方格的初 ...