
WinForm
文章平均质量分 72
仰望星空的代码
专注Web前端和微信小程序开发。
展开
-
WinForm创建自定义控件
虽然VS为我们提供了很多控件可以使用,但有时候这些控件仍然不能满足我们的要求,比如我们要对部分控件进行一些个性化的定制,例如美化控件,这时候就需要自己绘制控件,或是在原有控件的基础上进行修改自定义控件分为三种 1、组合控件(CompositeControls):在原有控件的基础上根据需要进行组合 2、扩展控件(ExtendedControls):继承自原有控件,添加一些新的转载 2017-05-03 10:33:54 · 18217 阅读 · 0 评论 -
TextBox控件获取焦点并光标正确闪烁
在使用WinForm开发登录界面时需要实现当鼠标点击账号或密码输入框时默认文字消失同时输入框获取焦点光标正常显示并可以输入文字等内容。在实际开发中使用了label控件和TextBox控件组合实现输入框。实现的逻辑是当鼠标点击覆盖在TextBox控件上的label时TextBox控件获取焦点。实际的效果是必须点击两次才能正确实现期望的效果。经过排查发现是TextBox控件设置了visible属性为f原创 2017-08-17 16:33:22 · 12681 阅读 · 0 评论 -
WinForm中Label控件换行显示并加滚动条
一、需求升级日志内容在窗体中显示出来,当内容不太多时完全显示无滚动条,内容非常多时高度控制在500px超出部分添加滚动条,通过滚动滚动条进行显示。二、实现显示内容通过label控件来显示并把label控件放到一个panel中。三、遇到的问题内容非常多时无法达到需求所要求的UI样式。主要表现是内容非常多时设置label的父控件panel的autoscroll属性为TRUE,出现横原创 2017-09-05 16:33:47 · 6897 阅读 · 0 评论 -
记一次程序在Windows家庭版上运行.NET Framework DbProvider无法加载解决过程
一、概述 软件开发完毕并且通过了测试部测试已经发布上线,可是偶尔一次把软件放到了虚拟机里启动时出错了导致软件无法启动。错误信息:无法加载.NET Framework DbProvider。这个错误导致创建连接sqlite数据的实例失败,无法读取数据无法初始化软件。 看到这个错误第一反应是支持sqlite的dll程序集缺失了,但是到软件目录下检查发现System.原创 2017-09-13 19:20:58 · 931 阅读 · 0 评论 -
C# 将引用的DLL文件放到指定的目录下
软件引用的DLL比较多的时候,全部的DLL都放在exe同目录下,显得比较乱而且不利于管理。为了更好的管理软件中的各种文件应该分门别类的放入相应的文件夹中。下面是解决该问题的一种方法:右键点击项目:属性-》设置,项目会生成一个app.config文件,在节点后面添加节点再添加下面的节点,重新生成一下就可以达到预期效果了。指定的目录即为生成exe所在路径的次级dll文件目录。原创 2017-09-15 16:47:21 · 12795 阅读 · 1 评论 -
WinForm中button禁用点击的另一种实现
一、效果按钮点击一次执行事件,在执行事件期间按钮不可点击。执行事件成功进行跳转,不成功按钮可以点击可再次执行。二、实现在实现这种效果时,首先想到的是通过enable属性来进行控制,可是这种方式有一个弊端,当enable为false时按钮的样式也会发生变化主要表现在字体颜色而且颜色不好控制。那么想到另外一种实现方式是通过控制按钮的click事件的注册和注销来控制按钮被点击时是否执行事件。原创 2017-08-30 19:09:09 · 12830 阅读 · 0 评论 -
C#引用动态连接库dll时出现 System.MissingMethodException: 找不到方法的解决方案
一、问题描述桌面程序项目是一个答题器,其中一个单选项目引用了一个答题设备项目,很普通的一个解决方案中的多个项目之间的引用。软件的主工具条再批量加载各个项目的程序集dll文件。当对单选项目进行了编辑只重新生成单选项目后调试时报了找不到方法的错误。我很纳闷为什么会出现这个错误,因为项目的层次很简单,编译时也没有任何问题;但是就是调试时报错。二、解决方法不知道为什么报错,不明白报错的原因。于原创 2017-10-12 13:18:22 · 13136 阅读 · 1 评论 -
自绘圆角矩形按钮
Winform的Button控件的外观着实让人产生不了美感,虽然Button控件有BackColor,FlatStyle等属性但是仍然不能满足日常软件开发的需要。现在软件设计的美感要求越来越高。现在软件UI设计中有很多圆角的设计,原创 2017-11-03 09:56:16 · 1975 阅读 · 0 评论 -
VS编译项目时自动生成cmd批处理及命令
1、编辑项目的csproj文件。设置PropertyGroup节点下的PostBuildEvent节点。代码如下。作用:复制项目中的静态文件到编译目录,主要用户桌面软件开发中。echo xcopy /E/I/Y $(ProjectDir)html $(SolutionDir)Build\$(ConfigurationName)\html >$(SolutionDir)Build\$(Confi原创 2017-11-03 16:35:35 · 4998 阅读 · 0 评论 -
C#桌面软件程序重新启动
private void Restart() { ThreadPool.QueueUserWorkItem(new WaitCallback(obj => { string exePath = Path.Combine(GlobalVariant.Root, "上课系统.exe");原创 2017-11-03 17:20:28 · 760 阅读 · 0 评论 -
WinForm窗体中ComboBox控件自定义高度和选项文本居中、选项高亮
WinForm窗体中的ComboBox控件是有TextBox控件和ListBox控件组合而成,其本身是不能自定义高度的只能根据字体的大小而自动生成高度。另外,选中后的选项文本在ComboBox中显示默认是依靠ComboBox的Top边和Left边来定位的而且不能更改。在项目中这样的设定是很不美观的。为了使ComboBox更加美观设计上要求可以自定义控件的高度和选中项文本的垂直居中和水平居中的。原创 2017-07-10 19:02:11 · 11024 阅读 · 0 评论 -
Winform窗体圆角以及描边完美解决方案
项目中需要把窗体的四角改为圆角,winform窗体的圆角不是很好设置或者说绘制。在网上查找了很多方案,最终找到了一种完美解决方案。在网上资料中常用的是都是重绘窗体四角。但是采用的方式不一样最后的效果也不一样同时代码量带来的体力劳动也是不一样的。第一种方案:重写OnPaint或者再窗体的Paint事件中实现重绘。这种方案有一个明显的缺点是软件运行时会引起窗体的闪烁,这种方案绘制的圆角有一原创 2017-06-28 18:19:39 · 10974 阅读 · 2 评论 -
一个项目引用不同版本dll
问题描述一个项目引用不同版本的同一dll,会引发以下报错:未能加载文件或程序集“xxx, Version=x.x.x.x, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx”或它的某一个依赖项。系统找不到指定的文件 这里来解决项目中同一dll的多版本问题。解决方式通过配置web.config配置文件(app.config或web.conf转载 2017-06-13 10:27:28 · 17711 阅读 · 6 评论 -
动态修改DataGridView单元格的类型和编辑单元格
DataGridView有六种列类型,当选择了列类型后对应到该列下的单元格会显示为对应的类型,不过这个类型是设计时指定的,当程序运行时要改变单元格的类型还是比较麻烦的。此文来聊一下如何在运行时改变单元格的类型。与DataGridView的六种列类型对应的有六种单元格类型,比如与DataGridViewComboBoxColumn列对应的单元格类型为DataGridViewComboBoxCel原创 2017-05-12 13:32:08 · 14631 阅读 · 2 评论 -
C#调用默认浏览器打开网页的几种方法
CSharp调用默认浏览器打开网页的几种方法示例界面:方法一:从注册表中读取默认浏览器可执行文件路径[csharp] view plain copyprivate void button1_Click(object sender, EventArgs e) { //从注册表中读取默认浏览器可执行转载 2017-05-24 13:21:35 · 4884 阅读 · 0 评论 -
C# DataGridView控件清空数据解决方法
C# DataGridView控件绑定数据后清空数据在清除DataGridview的数据时:1.DataSource为NULL(DataGridView.DataSource= null;)这样会将DataGridView的列也删掉。 2.用DataGridview.Rows.Clear(); 提示“不能清除此列表”!!!!! 以上都不是想要的结果。想要满转载 2017-05-13 14:54:13 · 5732 阅读 · 3 评论 -
WinForm之选择本地文件
在WebForm中提供了FileUpload控件来供我们选择本地文件,只要我们将该控件拖到页面上了,就已经有了选择本地文件的功能了。而在 WinForm中,并没有为我们提供集成该功能的控件,但为提供了OpenFileDialog类,我们可以利用该类来打开与选择本地文件。OpenFileDialog类,提供了提示用户打开文件的功能,它有如下属性和方法:属性:CheckFile原创 2017-05-13 15:28:51 · 7042 阅读 · 0 评论 -
WinForm简单的打包和部署
在安装项目类型中,比较适合WinForm应用程序创建安装程序部署的是安装项目。下面是进行简单的WinForm应用程序的打包和部署。以Visual Studio2010为例。1、新建安装部署项目打开VS,单击“文件”,选择“新建”,选择“项目”,选择“其他项目类型”->"安装与部署”->“安装项目”或“安装向导”,然后单击“确定”。2、配置安装系统文件(1)单原创 2017-05-08 14:08:21 · 19991 阅读 · 0 评论 -
动态设置控件属性的值
以下代码可以实现动态设置控件指定的属性的值。代码如下。/// /// 设置控件的属性的值 /// /// 控件类型 /// 属性值类型 /// 控件 /// 属性名 /// 属性值 public static void SetBehavior(Control co原创 2017-06-01 13:56:59 · 2817 阅读 · 2 评论 -
WinForm的控件TextBox恢复PasswordChar 默认值、取消密码框设置
WinForm中TextBox控件的PasswordChar属性默认是没有设置的或者说没有开启密码模式,当设置了该属性之后就会开启密码模式,输入的内容以设置的该属性的值来显示。那么该如何取消PasswordChar的设置呢?归纳起来有三种方法,其本质都是把PasswordChar的值赋值为默认值,赋值为默认值后就会按照正常文本进行显示。三种方法代码如下。this.textBox1.Pa原创 2017-06-29 18:06:41 · 13829 阅读 · 1 评论 -
Winform的TextBox控件显示默认文本点击消失离开显示
设置TextBox控件的默认文本即在加载TextBox控件时为其Text文本赋值。点击文本消失,离开或者失去焦点显示默认文本可以通过Enter和Leave事件或Mouse的事件来实现。具体代码如下。private void txtPassword_Enter(object sender, EventArgs e) { pnlPassword.Backgr原创 2017-06-29 18:19:25 · 12051 阅读 · 0 评论 -
C#客户端(WinForm)自动登录
1、项目需求 当用户在登录界面选择了自动登录选项,下次启动程序时登录界面自动登录成功后打开软件主界面。2、解决方案 当用户选中自动登录后点击登录按钮时把用户数据保存到本地,下次启动登录时从本地加载保存的用户数据。如果用户已经设置了自动登录则调用后台登录验证接口进行登录验证。验证成功后隐藏或关闭登录界面打开软件主界面。3、具体实现 3.1原创 2017-07-12 20:07:34 · 6490 阅读 · 0 评论 -
C#客户端(WinForm)开机自动启动实现
1.原理:需要开机自启动的程序,需要将其启动程序的路径写到注册表中指定的文件夹下2. 写入注册表的两种方式a.在生成安装程序时配置b.在程序运行时,动态配置。方法一:在生成安装程序时配置右击安装编辑程序,在“视图”菜单中,选择“注册表”。通过右键菜单新建"键",创建出如图所示的路径。右键Run,新建“字符串值”。为右侧的key命名(在注册表中不能重名),并在属性中...原创 2017-07-12 20:15:29 · 30325 阅读 · 3 评论