winform

(七十五)c#Winform自定义控件-控件水印组件

匿名 (未验证) 提交于 2019-12-02 22:09:29
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。 GitHub: https://github.com/kwwwvagaa/NetWinformControl 码云: https://gitee.com/kwwwvagaa/net_winform_custom_control.git 如果觉得写的还行,请点个 star 支持一下吧 麻烦博客下方点个【推荐】,谢谢 NuGet Install-Package HZH_Controls Ŀ¼ https://www.cnblogs.com/bfyx/p/11364884.html 用处及效果 此效果只是牛刀小试,需要注意的是,像textbox这样的控件并不起作用,请注意。 你可以向目标控件绘图,画任何你想画的东西 准备工作 没什么可准备的 开始 添加一个类GraphicalOverlay ,继承Component 代码比较少,一次全上了,主要就是用控件的paint事件搞事情,逻辑比较简单 1 using System; 2 using System.ComponentModel; 3 using System.Drawing; 4 using System.Windows.Forms; 5 6 namespace HZH_Controls.Controls 7 { 8 [DefaultEvent(

Winform组合ComboBox和TreeView实现ComboTree

匿名 (未验证) 提交于 2019-12-02 22:09:29
最近做Winform项目需要用到类似ComboBox的TreeView控件。 虽然各种第三方控件很多,但是存在各种版本不兼容问题。所以自己写了个简单的ComboTreeView控件。 下图是实现效果: 目前实现的比较简单,能满足我项目中的需求。 此处是项目中的代码简化后的版本,供大家参考。 1 using System ; 2 using System . Collections . Generic ; 3 using System . Windows . Forms ; 4 5 namespace CustomControl . Tree 6 { 7 public abstract class ComboTreeView < T > : ComboBox where T : class 8 { 9 protected const int WM_LBUTTONDOWN = 0x0201 , WM_LBUTTONDBLCLK = 0x0203 ; 10 11 protected TreeView treeView ; 12 protected ToolStripControlHost treeViewHost ; 13 protected ToolStripDropDown dropDown ; 14 protected bool dropDownOpen = false ; 15

Winform中设置和获取DevExpress的RadioGroup的选中项的value值

匿名 (未验证) 提交于 2019-12-02 22:09:29
场景 Winform中实现读取xml配置文件并动态配置ZedGraph的RadioGroup的选项: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100540708 在上面实现了将RadioGroup的选项根据配置文件动态配置后, 怎样对RadioGroup的选中item的value进行设置或者取值。 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 设置value //生成一个radioGroup RadioGroup radioGroupY = new RadioGroup (); foreach ( TitleModel s in radioGrupItems ) { //每一个单元按钮对应的选项item RadioGroupItem item = new RadioGroupItem (); //设置选项的value值 item . Value = s . TitleKey ; //设置选项的描述值 即 要显示的值 item . Description = s . Title ; //使选项启用 item . Enabled = true ; /

Winform中设置ZedGraph的颜色填充使用Fill

匿名 (未验证) 提交于 2019-12-02 22:09:29
场景 Winforn中设置ZedGraph曲线图的属性、坐标轴属性、刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100112573 https://www.cnblogs.com/badaoliumangqizhi/p/11422087.html 在上面设置属性后,需要设置ZedGraph的面板panel的填充颜色。 实现 //声明pane对象 GraphPane myPane = new GraphPane(); //获取控件的Pane myPane = zgc.GraphPane; //填充色 myPane.Fill = new Fill(Color.Red, Color.Blue, 100.0f); 这里的参数有3个 前两个代表两种颜色,最后一个代表渐变填充的角度。 官方解释是这样的。 按照上面的代码所设置的效果为: 这里需要白色,不然默认的颜色会发暗。 //填充白色 myPane.Fill = new Fill(Color.White, Color.White, 45.0f); 效果 来源:博客园 作者: 霸道流氓 链接:https://www.cnblogs.com/badaoliumangqizhi/archive/2019/09/19/11550181.html

C#中将表示颜色的string转换成Color

匿名 (未验证) 提交于 2019-12-02 22:09:29
场景 在Winform中需要存储某控件的Color属性,存储的是string字符串, 然后再对控件进行赋值时需要将string转换成Color。 实现 myPane . YAxis . Color = System . Drawing . ColorTranslator . FromHtml ( yList [ 0 ]. Color ); 来源:博客园 作者: 霸道流氓 链接:https://www.cnblogs.com/badaoliumangqizhi/archive/2019/09/12/11512778.html

Winform中实现ZedGraph新增自定义Y轴上下限、颜色、标题功能

匿名 (未验证) 提交于 2019-12-02 22:09:29
场景 Winform中实现ZedGraph的多条Y轴(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100132245 在上面实现显示多条自定义Y轴的效果上,改进实现自定义新增Y轴功能。 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 示例代码下载 https://download.csdn.net/download/badao_liumang_qizhi/11653210 实现 主窗体添加按钮,点击之后弹出Y轴设置界面。 private void button12_Click(object sender, EventArgs e) { addY = new AddY(); addY.Show(); } 其中addY是对应要弹窗显示的窗体对象,其设计如下 此窗体有两个EditText,用来存储Y轴的上下限,然后使用RadioGroup用来设置标题的选择,然后使用 ColorEditPicker进行颜色的选择,以上的控件都是使用的DevExpress的控件。 在点击新增按钮时将控件上的所有属性赋值给声明的YAxis对象。 private void button1_Click(object sender, EventArgs e) { YAxis y = new YAxis();

Winform中使用zxing实现二维码生成(附dll下载)

匿名 (未验证) 提交于 2019-12-02 22:09:29
场景 zxing.dll下载 https://download.csdn.net/download/badao_liumang_qizhi/11623214 效果 实现 新建Winform程序,将上面下载的zxing.dll添加到引用。 拖拽一个按钮,双击进入其点击事件。 private void button5_Click ( object sender , EventArgs e ) { //二维码要存储的内容 string codeString = "测试" ; //生成二维码并返回Bitmap Bitmap bitmap = ZxingHelper . CreateQRCode ( codeString ); //保存图片到本地 //bitmap.Save(@"C:\Users\Administrator\Desktop\a.png"); //将Bitmap转换成Image对象 Image img = Image . FromHbitmap ( bitmap . GetHbitmap ()); //设置pictureBox的图片源 this . pictureBox1 . Image = img ; } 然后在页面上拖拽一个pictureBox用来显示照片 这里新建了一个工具类ZxingHelper,调用其CreateQRCode方法返回生成二维码的Bitmap格式。

WPF注册热键后处理热键消息(非winform方式)

匿名 (未验证) 提交于 2019-12-02 22:09:29
由于最近在做wpf版的截图软件,在处理全局热键的时候,发现国内博客使用的都是winform窗体的键盘处理方式,此方式需要使用winform的动态库,如此不协调的代码让我开始在github中寻找相关代码。 最终,我找到了,wpf本身就支持处理系统的键盘消息(包括热键)。 使用ComponentDispatcher类处理键盘消息 下面贴上代码,方便大家复制粘贴: public static class HotkeyListener { /// <summary> /// 热键消息 /// </summary> const int WindowsMessageHotkey = 786; /// <summary> /// demo的实例句柄 /// </summary> public static IExcuteHotKey Instance = null; static HotkeyListener() { // 注册热键(调用windows API实现,与winform一致) Hotkey hotkey = new Hotkey(Keys.F2, Modifiers.None, true); // 处理热键消息(使用wpf的键盘处理) ComponentDispatcher.ThreadPreprocessMessage += (ref MSG Message, ref bool

Winform执行CMD命令

匿名 (未验证) 提交于 2019-12-02 22:06:11
1、首先分享 CmdHelper类 : 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Diagnostics; 5 6 namespace Helper 7 { 8 /// <summary> 9 /// 执行命令 10 /// </summary> 11 public class CmdHelper 12 { 13 /// 14 /// 执行cmd.exe命令 15 /// 16 ///命令文本 17 /// 命令输出文本 18 public static string ExeCommand(string commandText) 19 { 20 return ExeCommand(new string[] { commandText }); 21 } 22 /// 23 /// 执行多条cmd.exe命令 24 /// 25 ///命令文本数组 26 /// 命令输出文本 27 public static string ExeCommand(string[] commandTexts) 28 { 29 Process p = new Process(); 30 p.StartInfo.FileName = "cmd.exe"; 31 p

Winform文件上传

匿名 (未验证) 提交于 2019-12-02 22:06:11
近期在做了一个winform的项目的附件上传的需求 最初项目选型的时候有三种 1.使用webservice、webapi上传文件 2,直接保存在数据库中 3.使用共享目录+dos命令 第一种有文件大小限制、设计到的知识比较多,第二种会给数据库增加不小的压力,于是最后选了第三种 下面上关键代码,代码很简单,每个函数都写了说明 1 /// <summary> 2 /// 连接远程目录 3 /// </summary> 4 /// <param name="path"></param> 5 /// <param name="userName"></param> 6 /// <param name="passWord"></param> 7 /// <returns></returns> 8 public static bool connectState ( string path =@ "\\192.168.0.136\软件" , string userName = "administrator" , string passWord = "******" ) 9 { 10 bool Flag = false ; 11 Process proc = new Process (); 12 try 13 { 14 proc . StartInfo . FileName = "cmd.exe"