winform

Winform配置文件分类及使用

我的未来我决定 提交于 2019-11-28 14:52:59
以前只用过 xml 配置文件,最近项目需要使用配置文件,才开始学习配置文件的分类及使用,具体如下。 1.Properties-Settings.settings 在 winform 项目下的 Properties 中有 Settings.settings 文件,双击即可打开文件,如图: 1.1 解释说明 名称(Name):相当于变量名称一样。 类型( Type ): 配置的 Settings 的类型 。 范围( Scope ): 用户和应用程序,用户则运行时可更改,应用程序则运行时不可更改。     范围为 “ 应用程序 ” 的属性,读取都是从 App.config 里获取,设置也可以通过手工修改 App.config 改变,但是在程序中无法对其进行赋值,只能读取。     而范围为 “ 用户 ” 的属性 Settings 在第一次运行时会读取 App.config 里的初始值 。 但是一旦调用 Save 方法后, Settings 里 “ 用户 ” 范围的属性就会保存在系统里面,类似 WebForm 里的 Cookies 一样 。 从此以后,读取都会从系统里保存的值里读取,手工修改 App.config 里的 “ 用户 ” 范围的属性不会影响到这些属性,但是在调用 Reset 方法时会 重新 从 App.config 里获取 “ 用户 ” 范围的属性写入到系统中。也就是说,

c# winform 防止窗体多次打开

半城伤御伤魂 提交于 2019-11-28 12:24:48
在使用MDI子窗体时,如果仅仅是使用 from.show() 代码,那么我们单击几次菜单,就会打开几个同样的子窗体。可以用这段代码防止这种情况。 首先添加一个函数,这个函数用于检测指定的子窗体是否已经打开,如果打开则激活这个子窗体,否则返回false值 private bool ShowChildrenForm(string p_ChildrenFormText) {   int i; //依次检测当前窗体的子窗体   for (i = 0; i < this.MdiChildren.Length; i++)   { //判断当前子窗体的Text属性值是否与传入的字符串值相同     if (this.MdiChildren[i].Text == p_ChildrenFormText)       { //如果值相同则表示此子窗体为想要调用的子窗体,激活此子窗体并返回true值         this.MdiChildren[i].Activate();         return true;       }   } //如果没有相同的值则表示要调用的子窗体还没有被打开,返回false值   return false; } 然后在调用子窗体的方法中写入如下代码 if ( ! ShowChildrenForm("子窗体的Text属性值") ) {   Form newForm =

Log4Net的使用之winform

爷,独闯天下 提交于 2019-11-28 09:57:01
当我们将asp程序部署到远程服务器上的时候,如果遇到程序错误,如何能快速的判断我们程序的错误呢。所以--> Log4Net作为记录日志的一大神器,不得不学会熟练使用啊! 没有那么多的原理,照猫画虎的使用,保证你也能成功的使用这么简单的日志记录工具。 在 WinForm 中做好五步即可使用 Log4Net //第一步:Nuget安装log4net --> Install-Package log4net //第二步:在项目文件根目录加入文件log4net.config(如下,直接拷贝使用) <!-- Level的级别,由高到低 --> <!-- None > Fatal > ERROR > WARN > DEBUG > INFO > ALL--> <!-- 解释:如果level是ERROR,则在cs文件里面调用log4net的info()方法,则不会写入到日志文件中--> <log4net> <!--错误日志类--> <logger name="logerror"><!--日志类的名字--> <level value="ALL" /><!--定义记录的日志级别--> <appender-ref ref="ErrorAppender" /><!--记录到哪个介质中去--> </logger> <!--信息日志类--> <logger name="loginfo"> <level

Dev Winform本地化

有些话、适合烂在心里 提交于 2019-11-28 07:43:31
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-CN");//dev控件本地化 Application.Run(new Form1()); } 在运行目录下创建【zh-CN】文件夹,文件夹中放入官方的使用到的控件本地化资源包, 来源: https://www.cnblogs.com/BennyHua/p/11399683.html

(四十六)c#Winform自定义控件-水波进度条

左心房为你撑大大i 提交于 2019-11-28 07:29:40
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。 GitHub: https://github.com/kwwwvagaa/NetWinformControl 码云: https://gitee.com/kwwwvagaa/net_winform_custom_control.git 如果觉得写的还行,请点个 star 支持一下吧 欢迎前来交流探讨: 企鹅群568015492 麻烦博客下方点个【推荐】,谢谢 NuGet Install-Package HZH_Controls 目录 https://www.cnblogs.com/bfyx/p/11364884.html 用处及效果 准备工作 这个用到GDI+画的,请先了解一下GDI+ 还有用到了基类控件UCControlBase来控制圆角和背景色,如果还不了解请移步查看 (一)c#Winform自定义控件-基类控件 另外用到了水波控件UCWave,如果不了解请移步查看 (四十四)c#Winform自定义控件-水波 开始 添加一个用户控件UCProcessWave,继承UCControlBase 一些属性 1 private bool m_isRectangle = false; 2 [Description("是否矩形"), Category("自定义")] 3 public bool

(四十五)c#Winform自定义控件-水波图表

拥有回忆 提交于 2019-11-28 07:10:32
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。 GitHub: https://github.com/kwwwvagaa/NetWinformControl 码云: https://gitee.com/kwwwvagaa/net_winform_custom_control.git 如果觉得写的还行,请点个 star 支持一下吧 欢迎前来交流探讨: 企鹅群568015492 麻烦博客下方点个【推荐】,谢谢 NuGet Install-Package HZH_Controls 目录 https://www.cnblogs.com/bfyx/p/11364884.html 用处及效果 准备工作 这个用到GDI+画的,请先了解一下GDI+ 还有用到了基类控件UCControlBase来控制圆角和背景色,如果还不了解请移步查看 (一)c#Winform自定义控件-基类控件 开始 添加一个类UCWaveWithSource ,继承UCControlBase 添加属性 private int m_waveActualWidth = 50; private int m_waveWidth = 50; [Description("波形宽度"), Category("自定义")] public int WaveWidth { get { return m

DevExpress WinForm 控件汉化方法

感情迁移 提交于 2019-11-28 07:00:11
使用DevExpress控件开发时,汉化一直是一个很纠结的问题,各种方法均存在很多不足,在此不作评论。 现将本人实际使用中找到的方法提出共享,多提宝贵意见。 一、本地化对象。DevExpress的文档中列出的是14个。 Product Localizer Class Resource String Enumeration XtraBars BarLocalizer BarString XtraCharts ChartLocalizer ChartStringId XtraEditors Localizer StringId XtraGauges GaugeCoreLocalizer GaugeCoreStringId XtraGrid GridLocalizer GridStringId XtraLayoutControl LayoutLocalizer LayoutStringId XtraNavBar NavBarLocalizer NavBarStringId XtraPivotGrid PivotGridLocalizer PivotGridStringId XtraPrinting PreviewLocalizer PreviewStringId XtraReports ReportLocalizer ReportStringId XtraScheduler

C# WinForm中的一些小问题

拥有回忆 提交于 2019-11-28 05:54:10
前言 记一些C#窗体应用编程中的小问题。 DataGridView 设置Selected = true后实际选中行标依旧是第一行。 通常通过 this.dataGridView1.Rows[i].Selected = true; 后,在实际显示的时候,确实第 i 被选中,然而通过 CurrentRow 取值都是第一行,而且查看选中行标确实 0 解决 this.dataGridView1.Rows[i].Selected = true; this.dataGridView1.CurrentCell = this.dataGridView1.Rows[i].Cells[0]; // 关键 清除DataGridView默认选中 通常在给DataGridView设置了DataSource后,会默认选中第一行。 解决 在 DataBindingComplete 事件 this.dataGridView1.ClearSelection(); ,也可以在其他地方调用清空选择行。 TextBox只接受数字输入 比如只接受一个整数输入,实现 KeyPress 事件,其中实现 private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { e.Handled = e.KeyChar != 8 && !Char.IsDigit(e

(四十三)c#Winform自定义控件-Listview

烂漫一生 提交于 2019-11-28 05:12:31
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。 GitHub: https://github.com/kwwwvagaa/NetWinformControl 码云: https://gitee.com/kwwwvagaa/net_winform_custom_control.git 如果觉得写的还行,请点个 star 支持一下吧 欢迎前来交流探讨: 企鹅群568015492 麻烦博客下方点个【推荐】,谢谢 NuGet Install-Package HZH_Controls 目录 https://www.cnblogs.com/bfyx/p/11364884.html 用处及效果 使用分页控件效果 不使用分页控件效果 准备工作 我们需要元素控件,需要列表控件,另外为了具有更好的扩展性,元素控件实现接口,方便进行扩展 我们用到了分页控件,如果你还不了解,请移步查看 (十二)c#Winform自定义控件-分页控件 我们这里的元素控件用到圆角,故继承基类控件UCControlBase,如果不了解,请移步查看 (一)c#Winform自定义控件-基类控件 开始 添加一个接口,用来约束元素控件 1 public interface IListViewItem 2 { 3 /// <summary> 4 /// 数据源 5 /// </summary> 6

winform程序设置重启

自作多情 提交于 2019-11-28 04:57:33
private void Restart() { Thread thtmp = new Thread(new ParameterizedThreadStart(run)); object appName = Application.ExecutablePath; Thread.Sleep(2000); thtmp.Start(appName); } private void run(Object obj) { Process ps = new Process(); ps.StartInfo.FileName = obj.ToString(); ps.Start(); } 点击事件调用方法: Application.ExitThread(); Restart(); 来源: https://www.cnblogs.com/qingnianxu/p/11392534.html