-
C# DataGridView初级操作范例
这是一个C# DataGridView初级操作范例,演示了连接数据库、读取数据库、移动数据库指针到下一条、上一条记录的操作,以及将数据绑定到DataGridView控件中显示的整个过程,比较基础级的C#源码,因此希望新手参考:
private void shippersDataGridView_DataError(object sender, DataGridViewDataErrorEventArgs e)
{//如果错误发生在提交操作过程中,则在 MessageBox 中显示该错误
if (e.Exception != null && e.Context == DataGridViewDataErrorContexts.Commit)
{//测试时在Phone列中输入一个超长的字符串
MessageBox.Show(e.Exception.Message, "信息提示", MessageBoxButtons.OK);
}
}
- 2022-01-22 02:28:43下载
- 积分:1
-
C# 锁定线程释放Mutex对象
C# 锁定线程释放Mutex对象的例子,与锁定线程相比,多了释放Mutex对象的功能,实现方法和思路大致差不多:
C#锁定线程,可编写以下代码:
Program myProgram = new Program();//实例化类对象
myProgram.LockThread();//调用锁定线程方法
C# 释放Mutex对象,可编写以下代码:
Mutex myMutex = new Mutex(false);//实例化Mutex类对象
myMutex.WaitOne();//阻止当前线程
Console.WriteLine("锁定线程以实现线程同步");
myMutex.ReleaseMutex();//释放Mutex对象
完整可运行源码实例,请下载本源码。
- 2022-08-10 07:43:23下载
- 积分:1
-
C# 通过Linq实现元素操作符
C# 通过Linq实现各种元素操作符,比如实现了以下操作符:
var first = pdt.First(p => p.p_price > 500);//返回单价大于500的第一个元素
Console.WriteLine("First操作符(" + first + ")");
var last = pdt.Last(p => p.p_price < 500);//返回单价小于500的最后一个元素
Console.WriteLine("Last操作符(" + last + ")");
var single = pdt.Single(p => p.p_id == 1);//返回产品id为1的元素
Console.WriteLine("Single操作符(" + single + ")");
var elementat = pdt.ElementAt(3);//返回第4个元素
Console.WriteLine("ElementAt操作符(" + elementat + ")");
Console.Read();
- 2022-05-15 10:44:11下载
- 积分:1
-
C# 打印XPS文档 XPS文件打印
C# 打印选择的XPS文档,打印XPS文件,相关代码如下:
private void button1_Click(object sender, RoutedEventArgs e)
{//打印选择的XPS文档
var MyDlg = new Microsoft.Win32.OpenFileDialog();
MyDlg.InitialDirectory = System.IO.Directory.GetCurrentDirectory();
MyDlg.Filter = "XPS文件(*.xps)|*.xps|所有文件(*.*)|*.*";
if (MyDlg.ShowDialog() == true)
{
string MyFileName = MyDlg.FileName;
var pDialog = new PrintDialog();
pDialog.PageRangeSelection = PageRangeSelection.AllPages;
pDialog.UserPageRangeEnabled = true;
if (pDialog.ShowDialog() == true)
{
var MyDocument = new System.Windows.Xps.Packaging.XpsDocument(MyFileName, System.IO.FileAccess.ReadWrite);
FixedDocumentSequence MyFixedDocumentSequence = MyDocument.GetFixedDocumentSequence();
pDialog.PrintDocument(MyFixedDocumentSequence.DocumentPaginator, "我的XPS打印文档");
}
}
}
- 2022-03-23 09:37:24下载
- 积分:1
-
C# ScanPort 局域网端口扫描程序
C#端口扫描程序,适用于局域网计算机的扫描,扫描时将遍历局域网中的工作组,并将计算机名显示在下拉列表控件中,用户可指定某电脑的端口扫描范围。判断工作组名称,遍历指定工作组中的所有计算机名称,并显示在ListBox控件中:
//实例化DirectoryEntry对象,以便获得局域网组名和计算机名
DirectoryEntry DEMain = new DirectoryEntry("WinNT:");
TcpClient TClient = null;//实例化连接侦听对象
private Thread myThread; //实例化线程对象
string strName = ""; //记录选择的计算机名称
int intflag = 0; //扫描到的端口号
int intport = 0; //记录已用端口号
int intstart = 0; //扫描的开始端口号
int intend = 0; //扫描的结束端口号
详细情况请下载源码。
- 2023-05-16 16:35:03下载
- 积分:1
-
C#打造自己的智能屏幕取色工具
C#打造自己的智能屏幕取色工具,自动鼠标坐标点的颜色值,取色窗口会自动躲闪鼠标的位置,取色模块从一个继承自Image类的对象中创建Graphics对象,颜色值可以转换为十进制和十六进制,部分初始化源码如下:
[DllImport("gdi32")]
private static extern IntPtr CreateDC(
string lpszDriver, // 驱动名称
string lpszDevice, // 设备名称
string lpszOutput, // 无用,可以设定位"NULL"
IntPtr lpInitData // 任意的打印机数据
);
[DllImport("gdi32.dll")]
private static extern bool BitBlt(
IntPtr hdcDest, // 目标设备的句柄
int nXDest, // 目标对象的左上角的X坐标
int nYDest, // 目标对象的左上角的X坐标
int nWidth, // 目标对象的矩形的宽度
int nHeight, // 目标对象的矩形的长度
IntPtr hdcSrc, // 源设备的句柄
int nXSrc, // 源对象的左上角的X坐标
int nYSrc, // 源对象的左上角的X坐标
int dwRop // 光栅的操作值
- 2022-02-26 10:33:42下载
- 积分:1
-
C# 判断WPF页面是否运行在浏览器环境下
C# 判断WPF页面是否运行在浏览器环境下,还可以使用BrowserInteropHelper.Source属性进行深入检测,具体的实现代码如下:
private void Page_Loaded(object sender, RoutedEventArgs e)
{//判断WPF页面是否运行在浏览器环境下
string MyInfo = "";
if (System.Windows.Interop.BrowserInteropHelper.IsBrowserHosted)
{//还可以使用BrowserInteropHelper.Source属性进行深入检测
MyInfo = "当前WPF页面是运行在浏览器环境下!";
}
else
{
MyInfo = "当前WPF页面不是运行在浏览器环境下!";
}
MessageBox.Show(MyInfo, "信息提示", MessageBoxButton.OK);
}
- 2022-03-22 08:29:15下载
- 积分:1
-
改善C#的157个建议编写高质量代码_源代码合集
改善C#的157个建议编写高质量代码_源代码合集,这些实例均采用4.0框架,请运行使用Release模式;部分TIP由于简单未给出源码;这157个建议的源码涉及到语言篇、集合和LINQ、泛型、委托和事件、资源管理和序列化、异常与自定义异常、异步、多线程、任务和并行、架构篇成员设计、类型设计、安全性设计、编码规范及习惯、代码整洁、规范开发行为等,每类细分一共形成了157条建议,相信这些建议对于向高深进阶的C#开发者来说,是难得的建议。
- 2022-07-10 03:10:19下载
- 积分:1
-
C# 带农历 万年历 日历
Visual C#实现显示农历、星期、天干地支等信息的万年历,在这个万年历中,你可以学习到很多关于日期时间的获娶判断等操作:
int GetMonth (DateTime time)获取指定公历日期的农历月份
int GetDayOfMonth (DateTime time) 获取指定公历日期的农历天数,这个值根据大月或者小月取值是1到30或者1到29,
int GetSexagenaryYear (DateTime time) 获取指定公历日期的农历年份的干支纪年,从1到60,分别是甲子、乙丑、丙寅、….癸亥, 比如戊戌变法、辛亥革命就是按这个来命名的。当然算八字也少不了这个。
int GetTerrestrialBranch (int sexagenaryYear) ) 获取一个干支的地支,, 从1到12, 表示子、丑、寅、…今年是狗年
通过自定义函数,响应用户在日历上的操作,显示相关的日历提示信息:
if (e.Button == MouseButtons.Left)
{
Point myPosittion = Control.MousePosition;//获取当前鼠标的屏幕坐标
myPosittion.Offset(intX, intY);//重载当前鼠标的位置
this.DesktopLocation = myPosittion;//设置当前窗体在屏幕上的位置
}
- 2023-08-26 22:50:04下载
- 积分:1
-
C# 为DataGridView控件的新行指定默认值
C# 为DataGridView控件的新行指定默认值,双击DataGridView.rar即可看到默认值,一般情况下,单元格是空的没有任何内容,实现这一功能,其实也简单,如下代码示:
private void shippersDataGridView_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{//为DataGridView控件的新行指定默认值(测试时直接单击最下面的空白行即可)
e.Row.Cells[1].Value = "重庆长安捷达运输公司";
e.Row.Cells[2].Value = "023-40405690";
shippersBindingSource.AddNew();
}
- 2022-03-01 05:33:46下载
- 积分:1