winform实现不规则窗体及控件>

根据背景图片实现不规则的winform控件,实际是找到图片的不透明区域,最后把控件的Region区域重置。
使没有图片,也可以根据自己的需要创建graphicsPath,最终绘制自己需要的图形来实现不规则的winform控件


GraphicsPath graphicsPath = CalculateCon ... ...

阅读更多 >>

遍历字符串包含4字节汉字的解决方法>

string juzi = "看𤡆看";
MessageBox.Show(juzi.Lenght.ToString());


代码执行后弹出的结果不是3,而是4,即变量juzi的长度为4,因为汉字“𤡆”占用了4个字节。
如果要遍历juzi内的汉字,当取到“𤡆”时,会把它当成两个汉字,这样就会出现乱码的情况。

用 ... ...

阅读更多 >>

Windows Api实现winform程序动态效果>

winform实现一些动态效果比较费劲,如果是简单的显示隐藏,可以使用Windows Api 提供的接个接口,不用自己再费事调试效果了。
调用示例

//显示窗体
AnimateWindow(this.monthCalendar1.Handle, 300, AW_HIDE | AW_SLIDE | AW_CENTER);
//隐藏窗体
Animat ... ...

阅读更多 >>

winform设置窗体大小无效解决方法>

在做winform应用时经常遇到在设计器中把form设置的太小,运行后的大小和预想不一致的情况,通过下面的方法可以把winform中的form窗体设置成任意大小。
注意mininumSize和Size的设置顺序

//下面两句设置窗体最小size
this.MinimumSize = new Size(1, 1) ... ...

阅读更多 >>

C#局部鼠标钩子实现>

很早之前搜集的一个局部鼠标钩子的使用方法,这两天又用到了。winform实现一些特效还是太费劲。幸好还可以用win api。以下是局部鼠标钩子的创建、安装、使用以及卸载的方法。

public class MouseHookHelper
{
   //安装钩子
   [DllImport("user32.dl ... ...

阅读更多 >>

使用NPOI导出EXCEL并保存文件>

MemoryStream ms = new MemoryStream();    //创建内存流用于写入文件      
HSSFWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();   //创建Excel工作簿  
Sheet sheet = workbook.CreateSheet("sheet表名");//创建Sheet表
//根据情况创建 ... ...

阅读更多 >>

UTF-8带签名和不带签名的区别>


UTF8是国际编码,现在使用的也越来越广泛了。
在使用UTF8编码保存文件时,经常会见到UTF8带签名和不带签名两个选项,让人费解。

带签名UTF8的起源:
微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个隐藏字节,windows上面的记事本等程序就是根据 ... ...

阅读更多 >>

NPOI导入导出excel文件>

项目中对excel的操作都比较头疼,没有复杂的要求时,把数据写入文本文件,数据以制表符分隔,保存时把文件后缀名写成xls,这样简单的excel文件就出来了,实际上还是文本数据,并不是真正的excel文件。NPOI 是 POI 项目的 .NET 版本。POI是一个开源的 ... ...

阅读更多 >>

MediaPlayer获取Mp3总时长>

使用MediaPlayer播放MP3时,可以获取到音频的总长度。在不播放的情况下好像无法获取,不科学啊。代码最后一行实现在使用MediaPlayer不播放MP3时获取音频文件的总时长。

WMPLib.WindowsMediaPlayerClass Player = new WMPLib.WindowsMediaPlayerClass ... ...

阅读更多 >>

winform通过RichTextBox实现查找下一个上一个>

    文本显示内容比较多,想修改某个内容时太费劲,之前图省事都是复制到文本工具里,改完后再复制回来。这次又遇到了,还是在程序里加个功能来实现查找吧。

public class RichTextBoxTool
{
  /// <summary>
  /// 自己定义查找方法.参数content是要 ... ...

阅读更多 >>