随笔分类 - WinForm
摘要:所谓悬挂窗口,就是类似QQ聊天工具的一个功能,当窗口放到桌面的上边界时自动收缩成一个小条隐藏起来;而一旦鼠标再次接触到上述边界的时候,窗口又会自动展开。实现方法有两类,一是窗口内实现悬挂,在窗口内创建一个小的Panel,正常时不可见,在悬挂是显示,悬挂时设置窗口标题栏不显示和窗口高度为该Panel高度;二是单独窗口悬挂,创建新的窗口作为悬挂时的显示条,同时隐藏掉主窗口。一、窗口内实现悬挂在LocationChanged事件内判断是否到桌面上边界,通过定时器判断当前鼠标位置(System.Windows.Forms.Control.MousePosition)是否离开窗口区域,或者进入窗口区域。
阅读全文
摘要:按钮控件在windows forms总是我们使用最多的控件之一了,可是你真的了解它吗?除了修改它的text属性以及该name的名字和增加事件处理的代码你还了解其他吗?假如有这样一个需求,我们要做一个不规则的按钮,我们该具体如何实现呢?好吧,别的先不多说了,我直接上实例代码。using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms;namespace Borwer{ public partial class Form1 : Form { p...
阅读全文
摘要:一般的情况下,如果下拉框的选项的文字太长,下拉框ComboBox的Width宽度属性我们又不想要改变(默认不变),下拉选项的文字内容就会被截剪,如下图所示:解决办法:1、自动判断下拉选项的文字长度。2、根据文字长度来设置下拉框的下拉部门的宽度DropDownWidth。namespace WindowsFormsApplication2{ public partial class Form1 : Form { public Form1() { InitializeComponent(); //comboBox1...
阅读全文
摘要:前言上篇文章我提供了一种方案可以供我们捕获单线程程序中的所有未处理异常。但是如果程序是多线程,那么新增线程出现了异常上个方案就无能为力了。本着方案总比问题多的态度,我再给大家提供一种新的方案,供大家参考。处理多线程程序的全局异常demo好了下面直接上代码:using System;using System.Collections.Generic;using System.Linq;using System.Windows.Forms;using System.Threading;namespace WindowsFormsApplication2{ static class Progra...
阅读全文
摘要:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;namespace 判断是否打开Caps_Lock键{ public partial class Form1 : Form { public For...
阅读全文
摘要:1、Assembly.GetExecutingAssembly().Location得到exe的全路径,Path.GetDirectoryName得到目录路径,不要用Directory.GetCurrentDirectory(),这个可能会变(使用OpenFileDialog或者SetCurrentDirectory())。2、AppDomain.CurrentDomain.BaseDirectory; // 获取当前程序的目录3、System.Environment.CurrentDirectory// 获取当前程序的目录4、Application.StartupPath// 获取当前程序的
阅读全文
摘要:获取桌面的宽度:Screen.PrimaryScreen.WorkingArea.Width;获取桌面的高度:Screen.PrimaryScreen.WorkingArea.Height;获取桌面的高度:Screen.AllScreens[0].WorkingArea.Height;Screen.PrimaryScreen.WorkingArea属性用于获取显示器的工作区。工作区是显示器的桌面区域,不包括任务栏、停靠窗口和停靠工具栏。得到屏幕的范围:Screen.GetWorkingArea(new Point(0,0));Screen screen = Screen.PrimaryScre
阅读全文
摘要:一、使用Control的SelectNextControl方法// 回车切换控件焦点//要想使这个方法起到作用先将窗体的keypreview属性改为trueprotected override void OnKeyPress(KeyPressEventArgs e){ // 判断是否按下回车键,13是Enter键的ASCII码值 if (e.KeyChar == 13) { // 激活下一个控件 this.SelectNextControl(this.ActiveControl, true, true, true, true); } ...
阅读全文
摘要:因为最近在MSDN论坛和stackflow中看到一些朋友经常问到这个问题,所以写这篇文章来帮助大家遇到相同问题的时候可以很快的得到解决,下面就不啰嗦了,直接看代码如何解决这个问题的。首先,大家应该明确,现在没有可用的API来给我们动态地设置屏幕分辨率,我们要实现这个需求,我们只能在C#程序中调用Win32 API 函数来解决这个问题的,这里用C#代码调用Win32 API 就涉及到一个问题的,即.NET 互操作性的问题,关于这个大家可以参考我的互操作性系列文章。这里我就不过多解释了。我们要解决这个问题,首先大家肯定也会遇到一个经常遇到的问题,即如何获得用户的分辨率,对于这个问题,.NET中提供
阅读全文
摘要:转载自:http://www.cnblogs.com/zhili/p/OnlyInstance.html一、引言最近发现很多人在论坛中问到如何防止程序被多次运行的问题的,如:http://social.msdn.microsoft.com/Forums/zh-CN/6398fb10-ecc2-4c03-ab25-d03544f5fcc9, 所以这里就记录下来,希望给遇到同样问题的朋友有所参考的,同时也是对自己的一个积累。在介绍具体实现代码之前,我们必须明确解决这个问题的思路是什么的?下面只要分享我的一个思考的这个问题的方式:当我们点击一个exe文件时,此时该exe程序将会运行,我们可以看到该程
阅读全文
摘要:参考自:http://www.csharpwin.com/csharpspace/3932r8132.shtml一、C# button快捷键之第一种:Alt + *(按钮快捷键) 在Button按钮的Text属性的文本名称加(&键名)就可以了,如button1.Text = "保存(&S)"; 这样只要按Alt+S就可以执行按钮的单击事件。二、C# button快捷键之第二种:Ctrl+*及其他组合键 在WinForm中设置要使用组合键的窗体的KeyPreview(向窗体注册键盘事件)属性为True;然后使用窗体的KeyDown事件(在首次按下某个键时发生)
阅读全文
摘要:转载自:http://hi.baidu.com/cookiemulan/item/82df8ff867dd53cc531c26c7有时候,为了提高性能和节约资源,我们会为多个控件,指定同一个右键弹出菜单,这时,通常会产生一个需求:判断当前的弹出菜单是从哪个控件上弹出来,也就是“是由哪个控件的右键点击触发的”,以便于做进一步的控制。在.NET当中,实现起来是非常简单的,假设弹出菜单为ContextMenuStrip1,则只需要在该菜单的Opening事件进行判断处理即可。privatevoidcontextMenuStrip1_Opening(objectsender,CancelEventAr
阅读全文
摘要:转载自:http://blog.csdn.net/zhxingway/article/details/5288662C#单实例运行实现在某些情况我们要求应用程序只能运行一次,后运行的实例要把之前运行的程序激活并自己退出。现在是代码,找了好久哦,大家给点掌声吧,呵呵 .关键词:winform限制主程序运行一次,激活程序,我是直接把我项目中Program.cs中的代码Copy过来了,希望大家不要见怪. static class Program { // Uses to active the exist window [DllImport("User32.dl...
阅读全文
摘要:/// /// 添加到开机自动运行 /// public static void BootToRunAuto() { //获取可执行文件的全部路径 string exeDir = System.Windows.Forms.Application.ExecutablePath; //获取Run键 RegistryKey key1 = Registry.CurrentUser; RegistryKey ...
阅读全文

浙公网安备 33010602011771号