随笔分类 - C#
摘要:1 如果逻辑里的属性与控件的属性类型不匹配,要实现相应的IValueConverter 在这个例子里, 我把int型的Value绑定到TextBox的Text,int到string不能直接绑定,因此要实现一个Int2StringConverter,并在绑定时指定。否则不会显示值。 2 Templat
阅读全文
摘要:下面是一个简单的投影转换小工具 通过路由命令实现在所有参数都正确输入的情况下,"确定" 按钮可用
阅读全文
摘要:前台代码,在窗体里加入了一个Button控件 后台代码
阅读全文
摘要:创建WPF工程后,在应用中添加 System.Windows.Forms.dll 与 WindowsFormsIntegration.dll 在xaml代码适当位置添加WindowsFormsHost控件,用来承载WinForm控件 在后台代码将WinForm控件添加到 WindowsFormsHo
阅读全文
摘要:利用 Geckofx 60 实现下载 方案1. 根据Url直接下载 方案2. 弹出对话框提示下载
阅读全文
摘要:```C# //可获得当前执行的exe的文件名 string str1 = Process.GetCurrentProcess().MainModule.FileName; //获取和设置当前目录(即该进程从中启动的目录)的完全限定路径 string str2 = Environment.CurrentDirectory; //获取应用程序的当前工作目录 string str3 = Directo
阅读全文
摘要:1 String 转 DateTime 2 DateTime 转 String
阅读全文
摘要:C 中有三种计时器,分别是: System.Windows.Forms.Timer System.Threading.Timer System.Timers.Timer System.Windows.Forms.Timer 只能试用在Windows窗体程序中,不能用于控制台程序,且为单线程 运行结果
阅读全文
摘要:线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程
阅读全文
摘要:方法1:使用ParameterizedThreadStart委托 如果使用了ParameterizedThreadStart委托,线程能传递且只能传递一个object类型的参数,且返回类型为void. 方法2:创建自定义类 定义一个类,在其中定义需要的字段,将线程的方法定义为类的一个实例方法. 这种
阅读全文
摘要:1. Double 到 Double,保留两位小数 2. Double 到 String,保留两位小数 3. String 到 Decimal,保留两位小数 4. int 到 String,保留两位,用0补足
阅读全文
摘要:在高分屏(如15.6英寸,分辨率1920×1080)采用WinForm程序设计的方法进行开发,在Visual Studio设计的界面是清楚的,但运行时,菜单和控件字体变得模糊,界面大小也发生了变化。在Win10系统上缩放更为明显。针对这个问题,微软提供了解决方案,通过配置的方式,禁止DPI感知缩放,
阅读全文
摘要:1 正则表达式字符说明 字符 | 描述 |: \ | 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,"\n"匹配一个换行符。"\\n"匹配字符"n"。序列"\\\\"匹配"\\"而"\\("则匹配"("。 ^ | 匹配输入字符串的开始位置。如果设置了Reg
阅读全文
摘要:Pascal 规则:每个单词开头的字母大写。如:TestCounter Camel 规则:除了第一个单词外的其他单词的开头字母大写。如:testCounter Upper 规则:大写所有字母。仅用于一两个字符长的常量的缩写命名,超过三个字符长度应该应用Pascal规则 1. 用Pascal规则来命名
阅读全文