winform

WinForm DataGridView控件隔行变色

不问归期 提交于 2020-03-17 05:09:53
WinForm的DataGridView控件设置行的颜色 1 dgv.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.White; 隔行变色 1 /// <summary> 2 /// 隔行变色 3 /// </summary> 4 /// <param name="dgv">传入DataGridView控件名称</param> 5 public static void DgvRowColor(System.Windows.Forms.DataGridView dgv) 6 { 7 8 if (dgv.Rows.Count != 0) 9 { 10 for (int i = 0; i < dgv.Rows.Count; i++) 11 { 12 if ((i + 1) % 2 == 0) 13 { 14 dgv.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.White; 15 } 16 else 17 { 18 dgv.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(224, 254, 254); 19 } 20 } 21 } 22 } 来源: https:/

WinForm设置控件焦点focus

折月煮酒 提交于 2020-03-14 09:48:28
winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文本框里了。 ②Winform的Activated事件 在Form的Activated事件中添加textBox1.Focus(), 即可获得焦点。 private void Form1_Activated(object sender, EventArgs e) { textBox1.Focus(); } /* 何问起 hovertree.com */ http://www.cnblogs.com/roucheng/p/3518068.html TextBox是可以获得焦点的. 有几个前提: 1. TextBox所属的窗体(Form)在可操作(Active)状态. 即用户选中了Form. 2. TextBox的Enable属性,Visiable属性为True. 刚开始时原以为在Form的Load事件中添加textBox1.Focus(),测试失败 private void Form1_Load(object sender, EventArgs e) { textBox1.Focus(); } 因为在窗体加载时调用Focus()函数时, TextBox还未能成功的被显示到界面上。所以导致了失败。 笔者测试

Winform中实现颜色拾取器获取RGB与16进制颜色程序与源码分享

纵饮孤独 提交于 2020-03-12 11:13:48
场景 效果 实现 关键代码 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 GetColor { public partial class FrmGetColor : Form { public FrmGetColor() { InitializeComponent(); } #region 定义快捷键 //如果函数执行成功,返回值不为0。 //如果函数执行失败,返回值为0。要得到扩展错误信息,调用GetLastError。 [DllImport("user32.dll", SetLastError = true)] public static extern bool RegisterHotKey( IntPtr hWnd, //要定义热键的窗口的句柄 int id, //定义热键ID(不能与其它ID重复) KeyModifiers fsModifiers, /

c# winform笔记

那年仲夏 提交于 2020-03-09 19:04:30
设置button背景颜色 修改Button的背景颜色时,需将button.UseVisualStyleBackColor属性设置为false; MessageBox用法 MessageBox常用的四种类型,以及返回值类型 MessageBox.Show(“消息内容”); 返回类型:DialogResult MessageBox.Show(“消息内容”,”标题”); 返回类型:DialogResult MessageBox.Show(“消息内容”,”标题”); 返回类型:DialogResult MessageBox.Show(“消息内容”,”标题”, MessageBoxButtons按钮类型); 返回类型:DialogResult MessageBox.Show(“消息内容”,”标题”, MessageBoxButtons按钮类型, MessageBoxIcon图标类型 ); 返回类型:DialogResult 来源: oschina 链接: https://my.oschina.net/u/1253014/blog/665307

WinForm:进度条的实现(异步)

天大地大妈咪最大 提交于 2020-03-08 12:45:07
在WinForm中经常遇到一些费时的操作界面,比如统计某个磁盘分区的文件夹或者文件数目,如果分区很大或者文件过多的话,处理不好就会造成“假死”的情况,或者报“线程间操作无效”的异常,为了解决这个问题,可以使用委托来处理,在.net2.0中还可以用BackgroundWorker类。 BackgroundWorker类是.net 2.0里新增加的一个类,对于需要长时间操作而不需要用户长时间等待的情况可以使用这个类。 注意确保在 DoWork 事件处理程序中不操作任何用户界面对象。而应该过 ProgressChanged 和 RunWorkerCompleted 事件与用户界面进行通信。 它有几个属性: CancellationPending——指示应用程序是否已请求取消后台操作。 IsBusy——指示 BackgroundWorker 是否正在运行异步操作 WorkerReportsProgress——该值指示 BackgroundWorker 能否报告进度更新 WorkerSupportsCancellation——该值指示 BackgroundWorker 是否支持异步取消 还有如下事件: DoWork——调用 RunWorkerAsync 时发生。 ProgressChanged——调用 ReportProgress 时发生。 RunWorkerCompleted—

C# winform Qrcoder二维码

故事扮演 提交于 2020-03-07 22:18:00
首先安装这个Qrcoder,nuget中搜Qrcoder,然后直接点击安装 界面设计 namespace QRCoder { partial class Form1 { /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// 清理所有正在使用的资源。 /// </summary> /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要修改 /// 使用代码编辑器修改此方法的内容。 /// </summary> private void InitializeComponent() { this.pb_qrcode = new

C# Winform实时显示时间

丶灬走出姿态 提交于 2020-03-07 21:19:36
C# Winform实时显示时间 拖一个Timer控件和一个Lable控件到窗体上 Timer控件属性设置 this . timer1 . Enabled = true ; this . timer1 . Interval = 1000 ; this . timer1 . Tick + = new System . EventHandler ( this . timer1_Tick ) ; 具体代码 string weekstr = "" ; private void control_Load ( object sender , EventArgs e ) { timer1 . Start ( ) ; //把得到的星期转换成中文 switch ( DateTime . Now . DayOfWeek . ToString ( ) ) { case "Monday" : weekstr = "星期一" ; break ; case "Tuesday" : weekstr = "星期二" ; break ; case "Wednesday" : weekstr = "星期三" ; break ; case "Thursday" : weekstr = "星期四" ; break ; case "Friday" : weekstr = "星期五" ; break ; case

使用C#实现WinForm窗体的动画效果

柔情痞子 提交于 2020-03-06 13:35:18
Code   using System.Runtime.InteropServices;   public class Win32   {    public const Int32 AW_HOR_POSITIVE = 0x00000001 ; // 从左到右打开窗口    public const Int32 AW_HOR_NEGATIVE = 0x00000002 ; // 从右到左打开窗口    public const Int32 AW_VER_POSITIVE = 0x00000004 ; // 从上到下打开窗口    public const Int32 AW_VER_NEGATIVE = 0x00000008 ; // 从下到上打开窗口    public const Int32 AW_CENTER = 0x00000010 ; // 若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展。    public const Int32 AW_HIDE = 0x00010000 ; // 隐藏窗口,缺省则显示窗口。    public const Int32 AW_ACTIVATE = 0x00020000 ; // 激活窗口。在使用了AW_HIDE标志后不要使用这个标志。    public const Int32 AW_SLIDE

使用C#实现WinForm窗体的动画效果

依然范特西╮ 提交于 2020-03-06 13:34:33
using System.Runtime.InteropServices;  public class Win32  {   public const Int32 AW_HOR_POSITIVE = 0x00000001; // 从左到右打开窗口   public const Int32 AW_HOR_NEGATIVE = 0x00000002; // 从右到左打开窗口   public const Int32 AW_VER_POSITIVE = 0x00000004; // 从上到下打开窗口   public const Int32 AW_VER_NEGATIVE = 0x00000008; // 从下到上打开窗口   public const Int32 AW_CENTER = 0x00000010; //若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展。   public const Int32 AW_HIDE = 0x00010000; //隐藏窗口,缺省则显示窗口。   public const Int32 AW_ACTIVATE = 0x00020000; //激活窗口。在使用了AW_HIDE标志后不要使用这个标志。   public const Int32 AW_SLIDE = 0x00040000; //使用滑动类型

winform保存 变量那种方式好

旧城冷巷雨未停 提交于 2020-03-05 09:58:27
winform里有120*2个固定变量,一一对应,比如A1对应B3 ,A2对应B5,远程电脑发来A1,我需要处理B3;这些对应有时候还需要修改, 这些对应变量写死在程序中也可以,保存在数据库中也可以,保存在Text文本文件中也可以,保存在XML文件也可以, 请问那种方法好? 还有没更好的方 法。 当然是xml中了,你可以读取配置文件,然后随时更改对应的值 更好的方法就是,你可以通过延迟加载类,然后控制反转出需要对应的值,这样灵活性更好 xml配置文件中。可以灵活配置,无须重编译程序。 程序中2个参数(A,B),从配置文件中读取,A对应B,看你是全部要对应,还是单一输出,全部对应,就循环。 用Dictionary<string, string>把A机B机绑一起。 xml吧,几乎所有的应用程序都能处理XML文件。 xml,ini都行的 这种最佳应该是xml之类的配置文件。 既然要修改,肯定写死在程序是不行的 肯定XML啦!如果是数据库,万一你的软件要给很多人用,服务器的压力就得考虑考虑了。写死在程序里面,那肯定违反开闭原则了。 根本无所谓。 只要不是写在程序内部。 你写xml,写sqlite,写ini,都没有关系。 大家都是一个保存数据的文件而已。 区别只是,希望这个文件小一点,不要整一个 sql server过去。 首先 一定不要保存到程序内部.. 否则你改的话