c#
这个作者很懒,什么都没留下…
展开
-
c#自带配置文件App.config
c#自带配置文件App.config原创 2022-12-21 14:28:14 · 222 阅读 · 0 评论 -
c#DataGridView应用
DataGridView应用原创 2022-12-21 14:12:14 · 178 阅读 · 0 评论 -
c#webbrower抓取乱码图片
【代码】c#webbrower抓取乱码图片。原创 2022-10-25 15:52:16 · 119 阅读 · 0 评论 -
c#webbrower抓取cookie不全
c#webbrower抓取cookie不全转载 2022-10-25 15:46:11 · 203 阅读 · 0 评论 -
c#窗体根据标题查找MessageBox的内容
1.需要引用的dll(1).FindWindow:发现窗口不包含子窗口lpClassName指向一个以NULL字符结尾的、用来指定类名的字符串或一个可以确定类名字符串的原子。如果这个参数是一个原子,那么它必须是一个在调用此函数前已经通过GlobalAddAtom函数创建好的全局原子。这个原子(一个16bit的值),必须被放置在lpClassName的低位字节中,lpClassName的高位字节置零。如果该参数为null时,将会寻找任何与lpWindowName参数匹配的窗口。lpWind原创 2021-08-19 08:57:10 · 492 阅读 · 0 评论 -
C#操作ini文件
首先引入API函数[DllImport("kernel32")] private static extern int GetPrivateProfileString( string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize,原创 2021-03-16 08:34:31 · 241 阅读 · 0 评论 -
C#工程以管理员权限运行
工程右击》添加》新建项将这个项添加到工程中后双击点开将图中的值修改下原创 2021-02-26 14:58:39 · 155 阅读 · 0 评论 -
C#字符查找以及焦点确定在最后
这里用了textbox控件的KeyPress事件当每次输入完后在事件中输出的((TextBox)sender).Text总是没有刚输入的那个字符,所以我们要+e.KeyCharstring s = ((TextBox)sender).Text + e.KeyChar;输入小数的话是肯定不能出现第二个小数点的,那么就需要判断下出现了几次IEnumerable<char> qry = from c in s where c=='.' select c;qry.Count();原创 2021-02-02 08:57:25 · 185 阅读 · 0 评论 -
C#操作Word(Aspose.Words.dll)
首先引用Aspose.Words.dll之后进行Word制作,插入》文档部件》域选择MergeField》在域名里输入域名,之后电机确定效果如下图:添加图片方式也一样,如域名(Image:Name)之后创建vs工程引用Aspose.Words.dll后public void DOC_hzd() { Dictionary<string, string> data = new Dictionary<string,原创 2021-01-27 09:04:07 · 2179 阅读 · 0 评论 -
C#ErrorProvider控件
BlinklfDifferentError:闪烁一会就停了AlwaysBlink:总是闪烁NeverBlink:不闪烁调用:errorProvider1.SetError(textBox1, "错误");//最好放在Validating事件中这样只有在验证的时候才会原创 2021-01-22 14:42:19 · 175 阅读 · 0 评论 -
C#虚拟键盘注意事项
1、添加dll引用用来按键按下t抬起[DllImport("User32.dll")]public static extern void keybd_event(Keys bVK, Keys bScan, uint dwFlags, uint dwExtraInfo);2、调用方式:keybd_event(Keys.Space, 0, 0, 0);//按下空格keybd_event(Keys.Space, 0, 2, 0);//抬起空格3、如果要切换中英文this.ImeMode =原创 2021-01-07 10:01:44 · 292 阅读 · 2 评论 -
c# 运用Redis存储数据
1、首先添加一个NuGet包2、创建变量public static CSRedisClient redisHelper = new CSRedisClient("127.0.0.1:6379,defaultDatabase=0,prefix=DriverRedis:");//Redis链接地址加端口号,哪一个数据库db0,数据库下的文件夹RedisHelper.Initialization(redisHelper);//初始化一下redisHelper.Set("键", "值");//储存原创 2020-10-14 09:48:30 · 760 阅读 · 0 评论 -
C#随机生成验证码图
在书上学到绘图验证码示例,记录一下//生成验证码 public string CheckCode() { int number; char code; string checkCode = String.Empty;//声明变量存储随机生成的4位英文或数字 Random random = new Random(); //生成随机数 for(int原创 2020-06-18 15:52:39 · 284 阅读 · 0 评论 -
C#ADO.NET创建连接连接不上
连接本地服务器,服务器名输入"."或者"localhost"原创 2020-05-13 17:05:05 · 393 阅读 · 0 评论 -
C#对话框
public static DialogResult Show(string text,string caption,MessageBoxButtons buttons,MessageBoxIcon icon);MessageBoxButtons值 枚举值 说明 OK 消息框包含确定按钮 OKCancel 包含确定、取消按钮 AbortRetryIgnore...原创 2020-05-06 09:29:20 · 298 阅读 · 1 评论 -
C#listview控件
代码添加项listview.Items.Add("");清除某一项listview.Items.RemoveAt(listview.SelectedItems[0].Index);清除所有listview.Items.Clear();选中某一项listview.items[2].Selected=true;添加组listview.Groups.Add(new L...原创 2020-04-30 11:37:28 · 440 阅读 · 0 评论 -
C#ListBox选择多项
设置其SelectionMode属性的值MultiExtended:可以选择多项,并且用户可以使用shift键、Ctrl键和方向键来进行选择MultiSimple:可以选择多项None:无法选择项one:只能选择一项...原创 2020-04-30 09:26:15 · 1970 阅读 · 0 评论 -
C#操作Excel
首先添加引用操作Excel的引用之后再代码添加using引用using MSExcel = Microsoft.Office.Interop.Excel;//下面我们可以直接用MSExcel 来代替Microsoft.Office.Interop.Excelusing System.IO;string fileName = @"文件路径"; ...原创 2020-04-21 08:33:21 · 328 阅读 · 0 评论 -
c#获取计算机上硬件信息
首先添加引用System.Management我们这里拿打印机为例Win32_Printer就是获取设备上的打印机printer["Name"].ToString().ToLower()+ printer["WorkOffline"]是获取打印机名以及是否离线,为true就代表离线或脱机using System.Management;ManagementObjectSearch...原创 2020-03-16 10:44:39 · 349 阅读 · 0 评论 -
C#log4net日志
首先在项目中添加NuGet包在AssemblyInfo.cs文件中添加[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.config", ConfigFileExtension = "config", Watch = true)]原创 2020-03-02 14:13:01 · 159 阅读 · 0 评论 -
c#Redis订阅发布
三个文件RedisHelper.cs、DevConst.cs、主程序using StackExchange.Redis;using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Runtime.Serialization;using System.Run...原创 2020-02-27 13:33:48 · 1853 阅读 · 0 评论 -
c# SerialPort串口通信
1、引入using集using System.IO.Ports;2、定义全局变量SerialPort serialPort = new SerialPort();3、可以设置下拉列表(ComboBox)在窗体的Load事件中读取电脑上的com口foreach (string Serial_Name in SerialPort.GetPortNames()) ...原创 2020-01-11 11:35:31 · 494 阅读 · 0 评论 -
c#系统语音播报
首先添加引用,System.Speech添加using指令:using System.Speech.Synthesis;之后代码 SpeechSynthesizer synth = new SpeechSynthesizer(); synth.Rate = 1; //设置语速 synth.Speak(...原创 2020-01-10 08:58:27 · 883 阅读 · 0 评论 -
c#窗体StatusBar状态栏控件
1、首先将控件导入工具包在工具箱中右击任意控件》选择项》找到StatusBar确定导入2、可以在属性中找到Panels属性进行分栏,将ShowPanels改为true才会显示出分好的栏目,栏目总宽度如果大于状态栏宽度有的会显示不出来,如果想用自己定义的样式则炫需要将style改为OwnerDraw3、可以通过statusBar1.Panels[0].Text来为栏目显示文本,想...原创 2020-01-07 13:35:38 · 4032 阅读 · 0 评论 -
C# 窗体隐藏到托盘
1.首先添加个notifyicon控件,并可以在属性中设置图标样式2.可以加一个按钮,当点击时窗口最小化 this.WindowState == FormWindowState.Minimized3.找到窗体的sizechanged事件private void Frm_Main_SizeChanged(object sender, EventArgs e) ...原创 2019-12-30 15:03:56 · 1225 阅读 · 0 评论 -
c#拖动无边框窗体
1.引用using System.Runtime.InteropServices;2.定义公共变量并引用apipublic const int WM_SYSCOMMAND = 0x0112;//向Windows发送的消息类型 public const int SC_MOVE = 0XF010; //发送消息的附加消息 public const ...原创 2019-12-30 13:08:36 · 303 阅读 · 1 评论 -
c#防止Winfrom切换闪屏问题
protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000;//不同数代表不同意思 return cp; ...原创 2019-12-27 08:14:47 · 348 阅读 · 0 评论 -
c# 窗体常用的dll
1.查找窗口[DllImport("user32.dll", EntryPoint = "FindWindow")] private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);lpClassName:要找的窗口类,一般nulllpWindowName:要找的窗口标题...原创 2019-12-27 08:11:28 · 629 阅读 · 0 评论 -
c#连接sql server
今天在看书连接是老是出错,总结一下:1、到打开数据库语句时会报错:System.Data.SqlClient.SqlException:“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40 ...原创 2019-12-05 15:58:31 · 534 阅读 · 0 评论 -
c#有序列表
SortedList<TKey, TValue>运用Add()方法添加键与值如果尝试访问的键不存在会抛出异常,为避免可以用ContainsKey()或TryGetValue()ContainsKey():如果所传递的值存在会返回trueTryGetValue():如果指定键对应的值不存在,尝试获得指定键的值using System;using System.Co...原创 2019-11-29 08:52:51 · 230 阅读 · 0 评论 -
c#链表
LinkedListNode<T>类可获得列表中的上一个元素和下一个元素。属性有List、Next、Previous、ValueList:返回与节点相关的LinkedList对象Next和Previous:用于遍历列表,访问当前节点之后和之前的节点Value:返回与节点相关的元素,类型为TLinkedList<T>类可访问链表中的第一个或最后一个元素(Fir...原创 2019-11-28 17:03:41 · 1027 阅读 · 0 评论 -
c#开启新窗体Show()与ShowDialog()的区别
两者都是开启一个新窗口,不同的是ShowDialog()开启的是一个对话框模式。换句话来说就是必须关掉这个窗口后才能关闭上一个窗口。而Show()不需要关闭当前窗口也可以关闭上一个窗口,当关闭上一个窗口时当前窗口也会被关掉。...原创 2019-11-20 11:41:49 · 455 阅读 · 0 评论 -
c#窗体中的CancelEventArgs跟Validating事件
想实现实时监测文本框内容,等对应文本框内容不为空时按钮可以点击 private void txtBoxEmpty_Validating(object sender, CancelEventArgs e) { TextBox tb = (TextBox)sender; if (t...原创 2019-11-20 08:59:06 · 1028 阅读 · 0 评论 -
c#窗体开启线程无反应问题
需要在线程开启之前加上这一句Control.CheckForIllegalCrossThreadCalls = false;//开启线程首先要将主线程不允许开启其他线程的控制关掉原创 2019-11-19 16:59:48 · 845 阅读 · 0 评论 -
c#线程
方法一:Thread首先创建一个控制台应用程序,接着创建一个有参数的方法便于线程传递。注意参数的类型必须为Objectstatic void DownloadFile(object obj) { Console.WriteLine("开始"); Thread.Sleep(200); Console.W...原创 2018-11-24 20:13:04 · 107 阅读 · 0 评论 -
C# 类型转换
Convert.ToBoolean(val) val 转换为 boolConvert.ToByte(val) val 转换为byteConvert.ToChar(val) val 转换为 charConvert.ToDecimal(val) va...原创 2019-09-02 09:06:30 · 154 阅读 · 0 评论 -
C# 枚举类型
枚举类型的值都是整数默认为int类型,value1默认为0,依次往下using System;namespace _1_枚举{ enum GameState { Pause,//默认为0 Failed,//默认为1 Success, Start } class Program {...原创 2019-09-02 09:32:57 · 155 阅读 · 0 评论 -
C# 字符串
string str = " ABCdef ";string res = str.ToLower(); //把字符串转化成小写并返回string res = str.ToUpper(); //把字符串转化成大写并返回string res = str.Trim(); //去掉字符串前...原创 2019-09-02 10:50:22 · 230 阅读 · 0 评论 -
C#参数数组与数组参数
1、数组作为参数来传递时,当调用这个函数时里面的参数需要new一个数组2、参数数组就是在函数的数组参数前面加上params,当调用函数传递数组时不需要再new一个,只需要传递任意个跟数组参数类型相同的数就可以using System;namespace 1_参数数组{ class Program { static int Sum(int[]...原创 2019-09-07 16:16:32 · 1072 阅读 · 0 评论 -
c#委托
首先创建个控制台应用程序在Program下创建一个无参数无返回值的静态方法,可以输出一句话static void Text(){ Console.WriteLine("这是一个无参数无返回的方法");}接着在主方法中通过委托开启一个线程,如果没有睡眠时间10ms那么运行的将先Main再是Text()中的语句。说明开启线程是需要时间的static void Main(st...原创 2018-11-18 16:53:21 · 138 阅读 · 1 评论