06 2012 档案
摘要:private void MainWindow_KeyPress(object sender, KeyPressEventArgs e) { var k = e.KeyChar; if (char.IsLetterOrDigit(k)) { sb.Append(k); } else if ((Keys)k == Keys.Space) { //string CurrentCfgFilePat...
阅读全文
摘要:在讲C#参数传递之前,我们先简单讨论下 c#中值类型和引用类型的定义以及区别,有助于我们更好的理解参数传递。我们从内存的角度来简单讨论下值类型和引用类型的区别。我们都知道值类型存储在栈上,引用类型分别在栈和托管堆上。如下图:我们通过例子来看下 值类型和引用类型存储结构不同有哪些区别:定义一个类 (引用类型)View Code 1 public class Student2 {3 public int Age { get; set; }4 5 public void Say()6 {7 Console.WriteLi...
阅读全文
摘要:UI设计中经常需要作出无边框Window以防止用户做窗口的“最大、最小、关闭”等操作,但此时“alt+空格”菜单依然可做这些操作,可在code-behind中加入以下代码禁用之:View Code private void PrintWindow_KeyDown(object sender, KeyEventArgs e) { if (Keyboard.Modifiers == ModifierKeys.Alt && e.SystemKey == Key.Space) { e.Handled = true...
阅读全文
摘要:本章共计51个示例,全都在VS2008下.NET3.5测试通过,点击这里下载:Printing.rar1.PrintDialogThis sample illustrates how to create an instance of a simple PrintDialog and then display it. The sample uses both Extensible Application Markup Language (XAML) and procedural code.这个示例演示了如何进行一个最简单的打印工作,为此需要引入两个dll:ReachFramework.dll和S
阅读全文
摘要:\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n”匹配换行符。序列“\\”匹配“\”,“\(”匹配“(”。^ 匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与“\n”或“\r”之后的位置匹配。$ 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与“\n”或“\r”之前的位置匹配。* 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配“z”和“zoo”。* 等效于 {0,}。+ 一次或多次匹配前面的字符或子表达式。例如,“zo+”与“zo”和“zoo”匹
阅读全文
摘要:本贴为转自别人的blog,希望对朋友在datagridview或文本框开发过程中有全角半角的限制起作用Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->///<summary>///全角转半角的函数(DBCcase)///</summary>///<paramname="input">任意字符串</param>///<returns>半角字符串</return
阅读全文
摘要:虽然wpf内部有验证方案,但在实际应用中,会出现一些问题.这里发出来与大家共同讨论.作为使用者,你喜欢哪一种呢?这里不解释数据绑定的知识,因为不够专业,怕会误导,索性不写.但我相信大家会遇到这个问题.本文是通过多个示例比较得出的想法.1.通过继承ValidationRule抽象类,定义验证规则重写Validate方法这里是sdk的示例代码CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->publicclassAgeRangeRule:V
阅读全文
摘要:有时候,我们需要对用户输入的信息进行处理,当用户输入了违规格式的的数据时,我们需要在后台判断,并且给出提示,但是这样一来是加重了后台的负担(尤其是B/S架构的系统或者是基于WCF服务的系统),而且一旦要对所有输入进行控制时,修改的工作量就会很大,所以我们希望能在前台进行过滤,如同ASP.NET的Ajax验证控件一样。为了解决这个问题,我这里采用了重载输入控件和自定义控件结合的方式。输入类的控件主要是TextBox,RichTextBox和PasswordBox,其中TextBox跟RichTextBox的改造完全一样,因为他们可以继承,所以采用继承的方式来设计两个控件,而PasswordBox
阅读全文
摘要:private void TestTextBox_KeyDown(object sender, KeyEventArgs e) { var inputTextBox = sender as TextBox; var inputText = inputTextBox.Text; //屏蔽非法按键(包括中文和全角字符),只能输入小数 if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Decimal) ...
阅读全文
摘要:经常有这样的需求,部分输入框(如电话号码等),只允许输入数字字符。大家怎样解决呢?有人说用正则表达式处理验证事件。我觉得这样晚了一点,而且很难控制全面。我向大家推荐一种继承TextBox的做法。public class DPTextBox : TextBox { public DPTextBox(): base() { base.ImeMode = ImeMode.Disable; } protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == (Keys.Control | K..
阅读全文
摘要:上学的时候我们会倾向于(被迫)背很多东西,毕业后发现大部分都又还给了老师。但是受过教育和没有受过教育的人还是有区别的,差别可能就在于剩下的那一小部分。工作后,在工作中可能还会倾向于去记忆很多东西,但是我发现很多时候是没有必要的,而且有时候甚至会成为一种负担。第一个原因是之前被我们说了很多的知识爆炸。只看看在软件开发领域,这十几年出现了多少新的语言,接口,框架,思想,方法,模式,还有操作系统。而且,知识增长的速度只会越来越快,分工也会越来越细,一个人要想记住所以的东西基本是不可能的,即便是他所处领域内的东西也是不可能的。第二个原因是没有必要。为什么要记住这些东西?因为会用到它。但是仔细数数你平时
阅读全文
摘要:一、键盘类和键盘事件WPF提供了基础的键盘类(System.Input.Keyboard类),该类提供与键盘相关的事件、方法和属性,这些事件、方法和属性提供有关键盘状态的信息。Keyboard的事件也通过UIElement等XAML基元素类的事件向外提供。对于键盘操作,其常用的事件有两组:KeyDown事件和PreviewKeyDown事件:处理键盘键按下KeyUp事件和PreviewKeyUp事件:处理键盘键抬起其中KeyDown和KeyUp事件属于冒泡路由事件,而PreviewKeyDown和PreviewKeyup属于隧道路由事件。为了使元素能够接收键盘输入,该元素必须可获得焦点。默认情
阅读全文
摘要:最近在做一个程序,需要实现窗口下的F5 刷新功能。研究了一下KeyDown,KeyPress 和KeyUp ,发现之间还是有点学问的。让我们带着如下问题来说明,如果你看到这些问题你都知道,那么这篇文章你就当复习吧:)1.这三个事件的顺序是怎么样的?2.KeyDown 触发后,KeyUp是不是一定触发?3.三个事件的定义4.KeyDown、KeyUp 和KeyPress 之间的区别5.如何区分是否按的是小键盘?6.PrScrn按键三个事件能够捕获吗?7.{菜单键}和{开始键}KeyPress能够捕获吗?8.如何捕获系统的组合键?9.通过什么方式捕获PrScrn按键事件?(一)键事件按下列顺序发生
阅读全文

浙公网安备 33010602011771号