winform

Winform中实现仿XP系统的任务栏菜单效果(附代码下载)

你。 提交于 2019-12-12 02:39:32
场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 新建一个Form窗体,设计页面布局如下 折叠效果的向上和向下按钮是PictureBox,从上往下依次的Tag标签为1,2,3 三个PictureBox都绑定同一个点击事件,在点击事件中根据传递的Tag标签的值在Switch-case中进行处理。 在Switch-case中分别将对应的一组PictureBox和Panel对象赋值给上面声明的静态的两个控件对象。 下面要隐藏的Panel对象的tag属性默认为0,在上面switch-case中获取一组对应的控件对象后进行判断, 如果Tag为0或者2则是将Panel隐藏,同时将Tag标签设置为1,表示隐藏。 如果是1,则表示已经处于隐藏状态,则会将其显示并将Tag设置为2。 关键代码 private static Panel Var_Panel = new Panel(); private static PictureBox Var_Pict = new PictureBox(); private static int Var_i = 0; private Font Var_Font = new Font("宋体", 9); private void

Winform中实现仿XP系统的任务栏菜单效果(附代码下载)

雨燕双飞 提交于 2019-12-11 12:51:53
场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 新建一个Form窗体,设计页面布局如下 折叠效果的向上和向下按钮是PictureBox,从上往下依次的Tag标签为1,2,3 三个PictureBox都绑定同一个点击事件,在点击事件中根据传递的Tag标签的值在Switch-case中进行处理。 在Switch-case中分别将对应的一组PictureBox和Panel对象赋值给上面声明的静态的两个控件对象。 下面要隐藏的Panel对象的tag属性默认为0,在上面switch-case中获取一组对应的控件对象后进行判断, 如果Tag为0或者2则是将Panel隐藏,同时将Tag标签设置为1,表示隐藏。 如果是1,则表示已经处于隐藏状态,则会将其显示并将Tag设置为2。 关键代码 private static Panel Var_Panel = new Panel(); private static PictureBox Var_Pict = new PictureBox(); private static int Var_i = 0; private Font Var_Font = new Font("宋体", 9); private void

C# Winform 中真正意义的透明控件

若如初见. 提交于 2019-12-10 03:35:27
在稍微复杂的交互应用中,避免不了耗时的操作,这时候总希望给用户明确的提示,表示程序在运行中暂时不能进行其他操作。显示一个半透明的处于等待状态的遮罩层是很好的方法。在Web应用程序中直接设置Div的透明度然后覆盖操作界面就好,但是Winform的好像并没有提供透明度之类的属性。关于Background 中的 Transport 是特指背景透明的,其实质是继承父容器的背景颜色或者图片,在效果上看起来是一致的,但是如果父容器中包含其他的控件,则这种透明是无法显示这些控件的。此外还有一种真正意义的透明,它在隐藏在 ControlStyles 的特性设置中。 // 摘要: // 指定控件的样式和行为。 [Flags] public enum ControlStyles { ... // 摘要: // 如果为 true,则控件被绘制为不透明的,不绘制背景。 Opaque = 4, // // 摘要: // 如果为 true,控件接受 alpha 组件小于 255 的 System.Windows.Forms.Control.BackColor 以模拟透明。仅在 // System.Windows.Forms.ControlStyles.UserPaint 位设置为 true 并且父控件派生自 System.Windows.Forms.Control // 时才模拟透明。

winform INI文件操作辅助类

泄露秘密 提交于 2019-12-10 02:53:32
using System; using System.Runtime.InteropServices; using System.Text; namespace connectCMCC.Utils { /// <summary> /// INI文件操作辅助类 /// </summary> public class IniFileUtil { public string path; /// <summary> /// 传入INI文件路径构造对象 /// </summary> /// <param name="iniPath">INI文件路径</param> public IniFileUtil(string iniPath) { path = iniPath; } [DllImport("kernel32")] private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); [DllImport("kernel32")] private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder

winform制作小工具的技巧

Deadly 提交于 2019-12-09 11:10:24
在使用winfrom制作一些工具的时候,一些基本设置都是去属性里面找来找去,一段时间就忘了,记录记录以备不时之需。 一、窗体绘制的常用设置 窗体的设置应当在窗体构造函数中InitializeComponent()方法前执行 public frmMain() { this.StartPosition = FormStartPosition.CenterScreen;//窗体居中显示 this.MaximizeBox = false;//不显示最大化按钮 this.FormBorderStyle = FormBorderStyle.FixedSingle;//禁止放大缩小 InitializeComponent(); } 二、winform文本框全选功能 Control_ControlAdded事件在InitializeComponent()调用之前注册 public frmMain() { this.ControlAdded += new System.Windows.Forms.ControlEventHandler(this.Control_ControlAdded); InitializeComponent(); } private void Control_ControlAdded(object sender, ControlEventArgs e) { //使“未来”生效

WINFORM自定义皮肤制作(上)

被刻印的时光 ゝ 提交于 2019-12-09 09:24:47
最近要做个软件正在做技术准备,由于WINFORM生成的窗体很丑陋,一个好的软件除了功能性很重要外,UI的体验也是不容忽视的。习惯性的在网上搜素了下,换肤控件也有好几款,但是有些用起来不是很好用,好点的也要花很多银子哦,而且毕竟是别人写的,心里总不是个滋味,所以决定自己尝试着写写看,花了一个晚上终于做出来了个DEMO,貌似还不错,贴图如下(图片是直接是用的暴风影音的,寒自己一个。。) 下面和大家分享下。 首先分析下皮肤的制作原理,我的理解是把整个窗体(去边框后)划分为9个区域(如果有更复杂的界面,可以划分更多),有图有真相: 然后准备皮肤素材,切图,我的切图如下: 接着可以开工了: 1.初始化图片资源变量 protected int formMinX = 0;//最小化按钮的X坐标 protected int formMaxX = 0;//最大化按钮的X坐标 protected int formCloseX = 0;//关闭按钮的X坐标 protected int formTitleMarginLeft = 0;//标题栏的左边界 protected int formTitleMarginRight = 0;//标题栏的右边界 Image imgTopLeft = (Image)Resources.topleft;//窗体顶部左上角图片 Image imgTopRight =

WinForm中如何使用WPF中的控件

余生长醉 提交于 2019-12-09 04:28:50
在WinForm中可以使用WPF中的控件,或者由WPF创建的自定义控件; 步骤1:创建WinForm工程; 步骤2:在WinForm工程的解决方案资源管理器中,在刚刚创建的WinForm解决方案中新建或者添加现有的WPF用户控件工程; 步骤3:在WPF中创建自定义的控件,或者添加WPF控件到面板上; 步骤4:在WinForm面板上添加ElementHost控件(工具箱中); 步骤5:生成解决方案; 步骤6:在刚刚的ElementHost中的Child属性中添加刚刚的WPF生成的控件; 步骤7:完成。 如果在ElementHost的Child属性中添加了WPF生成的控件,编译的时候出现如下错误: 错误 1 类型“System.Windows.Markup.IComponentConnector”在未被引用的程序集中定义。必须添加对程序集“System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的引用。 则要在WinForm中解决方案-> 添加引用->System.Xaml,类似的错误,就添加相应的引用。 如何在winform中调用WPF用户控件里面的属性和方法呢 ,如图: WinForm工程为test,WPF用户控件工程为WpfControlLibrary1。

关于WinForm引用WPF窗体---在Winform窗体中使用WPF控件

假装没事ソ 提交于 2019-12-09 04:28:36
项目中有个界面展示用WPF实现起来比较简单,并且能提供更酷炫的效果,但是在WinForm中使用WPF窗体出现了问题,在网上找了一下有些人说Winform不能引用WPF的窗体,我就很纳闷,Win32都能引用WPF控件,怎么可能同样运行在.net Fromework框架下的Winfrom不能运行呢。经过慢慢尝试终于找到一个简单的解决方案,神马反射,神马工厂都是浮云,只需要在Winform项目中引用WPF项目下引用的三个程序集:PresentationCore,PrentationFramework,WindowsBase, 这个时就可以使用WPF窗体类实例中的属性和方法了。 在Winform窗体中使用WPF控件 转自: http://www.cnblogs.com/DebugLZQ/archive/2012/05/19/2508846.html 今天是礼拜6,下雨,没有外出,闲暇就写一篇博文讲下如何在Winform中使用WPF控件。原有是我在百度上搜索相关信息无果,遂干脆动手自己实现。 WPF控件的漂亮是Winform无法匹及的, 本文主旨是在Winform工程中如何使用WPF控件 。 先看下效果,如下图: 左边是传统的Winform控件,右边是DebugLZQ引入的WPF控件,我们可以很清楚的看到图片的“半透明”效果、TextBox的透明背景!界面很Cool吧~ 下面就介绍下

关于WinForm引用WPF窗体

喜你入骨 提交于 2019-12-09 04:28:09
项目中有个界面展示用WPF实现起来比较简单,并且能提供更酷炫的效果,但是在WinForm中使用WPF窗体出现了问题,在网上找了一下有些人说Winform不能引用WPF的窗体,我就很纳闷,Win32都能引用WPF控件,怎么可能同样运行在.net Fromework框架下的Winfrom不能运行呢。经过慢慢尝试终于找到一个简单的解决方案,神马反射,神马工厂都是浮云,只需要在Winform项目中引用WPF项目下引用的三个程序集:PresentationCore,PrentationFramework,WindowsBase, 这个时就可以使用WPF窗体类实例中的属性和方法了。 第一次发帖,多多指教。 来源: CSDN 作者: 爱的不落叶 链接: https://blog.csdn.net/wangsui99/article/details/6713273

C# WinForm 封装自定义组件(控件)Dll

懵懂的女人 提交于 2019-12-09 04:02:18
封装自定义控件很简单,没什么技术含量,这里通过封装自定义的数字文本框实例简单总结一下: 【1】新建自定义控件库 -- Windows Forms Control Library 【2】添加自定义组件 -- Component Class 【3】继承TextBox,添加KeyPress事件,代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Linq; using System.Text; using System.Windows.Forms; namespace WinForms.SelfControl { /// <summary> /// 数字文本框 -- 如果生成的Dll在工具箱中导入不了,可以直接将Dll拖入 /// </summary> public partial class TextBoxNumber : TextBox { public TextBoxNumber() { InitializeComponent(); } public TextBoxNumber(IContainer container) { container.Add(this);