![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#和WinFrom
C# 和WinFrom
AI浩
2022年博客之星Top8,2021年博客之星Top6,博客专家,华为云云享专家,十佳博主,阿里云专家博主,拥有多项发明专利并参与过国家重大专项,拥有丰富的开发经验。注重理论与实践的结合,让AI学起来不再枯燥。如果大家在看文章的时候,发现了文章的错误,烦请指出,我会及时纠正。
展开
-
SQL SERVER类型与C#类型对照
SQL SERVER类型与C#类型对照 SQL SERVER类型 C#类型 int Int32 text String bigint Int64 binary System.Byte[] bit Boolean char ..原创 2021-10-21 06:00:00 · 531 阅读 · 0 评论 -
C# 实现客户端Socket断开后重新连接。
思路:使用System.Threading.Timer类每秒检测一次是否连接,如果没有处于连接状态,则尝试连接一次,如果连接失败,则将异常信息捕捉,并记录日志,然后Sleep2秒,再尝试连接,一直重复连接的步骤。 System.Threading.Timer timer = null; private void BtnConnect_Click(object sender, RoutedEventArgs e) { timer = new Time原创 2021-02-09 16:24:52 · 8862 阅读 · 3 评论 -
C# 将字符串中的多个连续空格变成一个
public static string MergeSpace(string str) { if (!string.IsNullOrEmpty(str)) { str = new System.Text.RegularExpressions.Regex("[\\s]+").Replace(str, " "); } return str; }...原创 2021-02-03 09:35:49 · 1253 阅读 · 0 评论 -
WinForm 如何自定义开关控件
先上结果:由于WinForm中没有开关控件,需要自定义。下面就写我制作开关控件的步骤。1、新建个WinForm程序,右键选择属性。2、点击资源,将资源的类型修改为图像,然后将Button的图片复制进去(直接从文件夹里复制就行了)3、新建用户控件,命名为OnOffButton。在OnOffButton.cs中编写代码。using System;using System.Drawing;using System.Windows.Forms;namespace W原创 2021-01-08 11:33:34 · 2105 阅读 · 1 评论 -
WinForm关闭主窗体后,仍然有后台进程运行。
关闭窗体在c#中退出WinForm程序包括有很多方法,如:this.Close();Application.Exit();Application.ExitThread();System.Environment.Exit(0);等他们各自的方法不一样,下面我们就来详细介绍一下。1.this.Close();只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;2.Application.Exit();强制所有消息中止,退出所有的...原创 2021-01-06 17:05:33 · 2933 阅读 · 0 评论 -
splitcontainer控件固定Panel的大小
IsSpliterFixed属性设为FalseFixedPannel属性设为Panel1(要固定的面板的名称)原创 2021-01-05 11:55:41 · 2833 阅读 · 0 评论 -
解决WinForm卡顿,加载慢、拖拽不灵活的问题
把下面这段代码放到需要解决问题的窗体中protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; // 用双缓冲绘制窗口的所有子控件 return cp; ...原创 2021-01-04 16:54:39 · 6334 阅读 · 2 评论 -
进程间通信——共享内存
接收端using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Runtime.InteropServices;using System.Text;using System.Threading;using System.Threading.Tasks;原创 2020-12-31 10:14:24 · 341 阅读 · 0 评论 -
Winform Chart网格线设置为虚线
chart1.ChartAreas[0].AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dash; //设置网格类型为虚线chart1.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dash; //设置网格类型为虚线原创 2020-12-25 13:59:16 · 3768 阅读 · 0 评论 -
chart(WinForm)放大多次后,直接回到放大前的状态
chartPower.ChartAreas[0].AxisX.ScaleView.ZoomReset(0); chartPower.ChartAreas[0].AxisY.ScaleView.ZoomReset(0);原创 2020-12-22 19:40:03 · 1168 阅读 · 0 评论 -
WinForm——TableLayoutPanel实例
实例1、用TableLayoutPanel制作表格声明TableLayoutPanel对象 /// <summary> /// TableLayoutPanel /// </summary>TableLayoutPanel table = new TableLayoutPanel();添加控件和事件 private void Form2_Load(object sender, EventArgs e)...原创 2020-08-06 11:34:58 · 5583 阅读 · 0 评论 -
WinForm 中 ISupportInitialize 的用处。
ISupportInitialize使用 其BeginInit和EndInit方法,防止控件在完全初始化之前被使用。private void InitializeComponent(){((System.ComponentModel.ISupportInitialize)(this.trackBar1)).BeginInit();((System.ComponentModel.ISupportInitialize)(this.trackBar2)).BeginInit();((S...原创 2020-07-10 15:41:00 · 1474 阅读 · 0 评论 -
WinForm 将被遮挡的控件显示到最前面
利用BringToFront()方法,来调整在在Z轴的顺序,将控件显置顶原创 2020-07-10 13:25:09 · 2853 阅读 · 0 评论 -
单例模式实例——神码设计模式
1、/// <summary> /// 多线程下的懒汉式单例模式,不加锁会出现多线程同时创建对象的问题,违反了单例模式原则。 /// </summary> public class Singleton { private static Singleton instance; private static object _lock = new object(); private Singlet...原创 2020-07-09 13:19:22 · 403 阅读 · 0 评论 -
WinForm 创建窗口句柄时出错
今天遇到一个问题,见上图,控件是自己写的,不是标准的控件 在执行Controls.Add(control),出现上述问题。问题的具体描述:根据条件设置移除和加入不同的控件,当前控件不满足条件时,将控件移除,然后加入新的控件。代码如下: if (this.Panel.Controls.Contains(this.R_Parameter)) { this.Panel.Controls.Remove(this.R_Para...原创 2020-07-04 17:10:44 · 6862 阅读 · 1 评论 -
C# 属性设置
将属性设置为对外访问只读,对内可写,同时设置默认值。举例:public string DL_PointA { get; private set; } = "2054325";原创 2020-07-03 13:44:17 · 4824 阅读 · 0 评论 -
C#中的三种定时器总结
目录摘要1、Timer控件2、System.Timers.Timer 类3、System.Threading.Timer类总结摘要目前,在.NET中有三种计时器:1、System.Windows.Forms命名空间下的Timer控件,它直接继承自Componet。Timer控件只有绑定了Tick事件和设置Enabled=True后才会自动计时,停止计时可以用Stop()方法控制,通过Stop()停止之后,如果想重新计时,可以用Start()方法来启动计时器。Timer控件和它原创 2020-06-19 14:09:29 · 3950 阅读 · 0 评论 -
WinForm——Tooltip
使用案例弹框位置在屏幕中间显示两秒Tooltip tip=new Tooltip();tip.Show(“保存成功!”,this,this.Width/2,this.Height/2,2000);Thread.Sleep(2000);给tip显示的时间。根据鼠标在窗体的位置显示ToolTipToolTip tip=new ToolTip();tip.IsBalloon=true;Point p1=MousePostition;//获取鼠标在屏幕的位置。tip.ToolTipT原创 2020-06-17 12:13:20 · 4486 阅读 · 0 评论 -
建议104:用多态代替条件语句
假设开发自动驾驶系统。在设计之初,自动驾驶系统拥有一个驾驶系统命令的枚举类型:enum DriveCommand{ start, stop}又假设有一个驾驶的方法处理车辆接收到的指令。一开始我们这样编码:static void Main(string[] args){ DriveCommand comand=DriveCommand.Start; Drive(comand); comand=DriveCommand.Stop;...原创 2020-06-16 14:43:57 · 3585 阅读 · 0 评论 -
改善C#程序的157个建议——建议84学习笔记:使用PLINQ
微软专门为Linq拓展了一个类ParallelEnumerable(该类型也在命名空间System.Linq中),它所提供的扩展方法让Linq支持并行计算,这就是所谓PLinq。传统的Linq计算是单线程的,PLinq则是并发的、多线程的,例如: class Program { static void Main(string[] args) { List<int> intList = new List<in...原创 2020-06-12 10:21:22 · 3548 阅读 · 0 评论 -
改善C#程序的157建议——建议42学习笔记:使用泛型参数兼容泛型接口的不可变性。
例: interface ISalary<T> { void Pay(); } class BaseSalaryCounter<T> : ISalary<T> { public void Pay() { Console.WriteLine("Pay base salary"); } } class Emplyee {...原创 2020-06-10 14:32:25 · 4358 阅读 · 0 评论 -
改善C#程序157个建议——建议37学习笔记:使用Lambda表达式代替方法和匿名方法
class Program { static void Main(string[] args) { Func<int, int, int> add = Add; Action<string> print = Print; print(add(1, 2).ToString()); Console.ReadKey(); ...原创 2020-06-10 13:26:08 · 4351 阅读 · 0 评论 -
改善C#程序的157个建议——建议33学习笔记:避免在泛型类型中声明静态成员
首先查看下面的代码: public class MyList<T> { public static int Count { get; set; } public MyList() { Count++; } } class Program { static void Main(string[] args) { MyLi...原创 2020-06-10 11:47:55 · 3467 阅读 · 0 评论 -
GDI+——常用的文字处理技术
目录倒影效果的文字设置投影效果的文字实现影印版效果文字实现阴影效果的文字实现倾斜效果的文字实现渐变效果的文字实现缩放文字实现辉光效果的文字倒影效果的文字思路:通过使用Graphics对象的MeasureString方法和ScaleTransform方法来绘制倒影效果的文字。MeasureString方法。该方法用于测量指定的Font格式绘制的字符串。语法格式如下:public SizeF MeasureString(string text,Font fon.原创 2020-05-25 15:07:27 · 3398 阅读 · 0 评论 -
GDI+——常用的图像处理技术(三)
实现锐化效果实现原理:改变图像像素点颜色值变化较大的地方,颜色值变化小的地方,改变不大,图像的边缘,由于相邻两个像素的颜色值变化较大,所以在锐化后,颜色值变化较大。代码: public Image AcuteEffect(PictureBox Pict) { int Var_W = Pict.Width; //获取图片的宽度 int ...原创 2020-05-22 18:06:47 · 5665 阅读 · 0 评论 -
GDI+——常用的图像处理技术(二)
目录实现垂直百叶窗效果。水平交错显示图像纹理效果展示实现浮雕效果实现胶片效果实现积木效果柔化效果显示图片实现垂直百叶窗效果。原理:将图像分成若干个区域,各个区月以一种渐进的方式逐渐显示,效果就像百叶窗翻动一样。主要用到了Bitmap类的GetRixel和SetPixel方法,获取和设置图像中指定像素的颜色,然后使用Refresh方法重新刷新窗体背景。 private void button1_Click(object sender, EventArgs...原创 2020-05-22 16:58:16 · 5426 阅读 · 0 评论 -
GDI+——常用的图像处理技术(一)
批量图像转换。批量图像转换主要用到了Thread类和ImageFormat类。使用Thread类新开一个线程去执行图像的批量转化,防止程序实现假死的状态。namespace PictureBatchConversion{public partial class Frm_Main : Form{public Frm_Main(){ InitializeComponent();}string[] path1=null; //...原创 2020-05-22 16:53:44 · 5749 阅读 · 0 评论 -
GDI+——使用Graphics类绘制基本图形
目录绘制基本图形绘制直线绘制矩形绘制椭圆绘制圆弧绘制扇形绘制多边形绘制文本综合案例使用双缓冲技术绘图绘制基本图形绘制直线绘制直线用到了Graphics类的DrawLine方法。该方法最常用的重载方式有两种,public void DrawLine(Pen pen,Point pt1,Point pt2)参数说明:pen:Pen对象,它确定线条的颜色,宽度和样式。pt1:Point结构,它表示要连接的第一个点。pt2:Point结构,表示要原创 2020-05-21 14:52:39 · 6965 阅读 · 0 评论 -
WinForm——TreeView总结
常用属性 CheckBoxes属性 该属性表示获取或设置一个值,用以指示是否在试图空间中的树节点旁显示复选框。例:this.treeView1.CheckBoxes=True; LabelEdit属性 该属性表示获取或设置一个值,用以指示是否可以编辑树节点的标签文本。如果让treeView1控件不能编辑树节点将LabelEdit设置为false。 Nodes属性。 该属性用于设置TreeView控件中所有节点this.treeView1.Nodes.Add(“拉芳”);原创 2020-05-19 18:39:31 · 3852 阅读 · 0 评论 -
图片和字节流之间的转换
将图片保存成byte数组保存到数据库,将byte数组转为图片 /// <summary> /// 把一幅图片转换成字节数组 /// </summary> /// <param name="imageData"></param> /// <returns></returns> private byte[] ToByte(Image...原创 2020-05-19 09:37:09 · 3587 阅读 · 0 评论 -
WinForm——Text控件总结
目录1、常用属性:Text属性MaxLength 属性MultiLine 属性HideSelection属性ReadOnly属性PasswordChar 属性ScrollBars属性SelectionLength属性SelectionStart属性SelectedText 属性LinesModifiedTextLength属性WordWrapPasswordChar属性ShorcutsEnabled属性2、常用方法:Appen.原创 2020-05-19 09:31:55 · 4263 阅读 · 0 评论 -
List View控件总结
常用属性View属性设置ListVIew显示项的视图,View的枚举值之一。例如:listView1.View = View.Details; 枚举 说明 Details 每个项将显示在单独的行与列中排列的各项有关的详细信息。 最左侧列中包含一个小图标和标签,并且后续列包含由应用程序指定的子项。 列会显示一个可以显示的列标题的头。 在运行时,用户可以调整每一列。 LargeIcon原创 2020-05-17 12:09:43 · 3613 阅读 · 0 评论 -
DataTimePicker控件总结
常用属性CustomFormat属性设置时间日期的格式。属性:yyyy-MM-dd HH-mmChecked属性该属性表示获取或设置一个值,该值指示是否医用有效日期/时间设置了Value属性且值可以更新。this.dateTimePicker.Checked=true;ShowCheckBox属性。该属性表示获取或设置一个值,该值在选定日期的左侧是否显示一个复选框。ShowUpDown属性该属性表示获取或设置一个值,该值指示是否使用数值调节钮控件调整日期/时间值。Value属...原创 2020-05-17 09:42:36 · 3146 阅读 · 0 评论 -
WinForm——Label总结
1、常用属性Text属性用来设置或返回标签控件中显示的文本信息。AutoSize 属性用来获取或设置一个值,该值指示是否自动调整控件的大小以完整显示其内容。取值为 true时,控件将自动调整到刚好能容纳文本时的大小,取值为false时,控件的大小为设计时的大小。默认值为false。Anchor 属性用来确定此控件与其容器控件的固定关系的。。BackColor属性用来获取或设...原创 2020-05-06 18:39:42 · 3874 阅读 · 0 评论 -
WinForm——DataGridView总结
常用属性CurrentCell属性获取或设置当前处于活动状态的单元格。语法:public DataGridViewCell currentCell{get;set;}默认值时第一列中的第一个单元格,如控件中没有单元格,则为空引用。例:DataGridView1.CurrentCell=DataGridView1[0,0];取消默认选中行的办法1、dataGridView1.Curr...原创 2020-05-06 18:37:08 · 4674 阅读 · 0 评论 -
WinForm——ContextMenuStrip总结
使用举例根据属的节点层次不同,右键列表的内容显示不同。需要使用Opening事件。private void contextMenuStrip1_Opening(object sender,CancelEventArgs e){ TreeNode node=trw.SelectedNode; if (node==null){...原创 2020-05-06 18:35:50 · 5725 阅读 · 0 评论 -
Socket总结
一:什么是SOCKETsocket的英文原义是“孔”或“插座”。作为进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄(其实就是两个程序通信用的)。socket非常类似于电话插座。以一个电话网为例:电话的通话双方相当于相互通信的2个程序,电话号码就是ip地址。任何用户在通话之前,首先要占有一部电话机,相当于申请一个socket;同时要知道对方的号码,相...原创 2020-05-06 12:23:29 · 3963 阅读 · 1 评论 -
WinForm控件属性大全
C#控件及常用设计整1、窗体... 12、Label 控件... 33、TextBox 控件... 44、RichTextBox控件... 55、NumericUpDown 控件... 76、Button 控件... 77、GroupBox 控件... 78、RadioButton控件... 89、CheckBox 控件... 810、ListBox 控件....原创 2020-04-20 19:03:17 · 10659 阅读 · 1 评论 -
WinForm——ComboBox总结
常用属性DropDownStyle属性ComboBox 的DropDownStyle 属性 一共有三个值:DropDownList, DropDown, Simple。 字段 说明 DropDown 通过单击下箭头指定显示列表,并指定文本部分可编辑。 这表示用户可以输入新的值,而不仅限于选择列表中现有的值。 使用此设置时...原创 2020-04-20 18:22:22 · 11028 阅读 · 0 评论 -
WinForm——CheckBox总结
常用属性Checked属性该属性用于指定复选框是否处于选中状态。。例:this.checkBox1.Checked=true;FlatStyle属性该属性表示获取或设置按钮控件平面样式外观,FlatStyle的枚举值之一。 枚举 说明 Flat 表示该控件以平面的形式显示。 Popup ...原创 2020-04-20 15:05:15 · 8468 阅读 · 0 评论