C#之事件与eventArgs】的更多相关文章

1,自定义事件: public class TextChangeEventArgs : EventArgs {     private string message;     public TextChangeEventArgs(string message)     {         this.message = message;     }  public string Message     {         get{return message;}     } } 2,定义委托为,…
static void Main(string[] args)         {             MyText myText = new MyText();             myText.Changed += new MyText.ChangedEventHandler(myText_Chenged);               string str = string.Empty;             while (str != "exit")         …
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { public class Myevents : EventArgs { public string Message; public Myevents(string msg) { this.Message…
MVVM设计模式和在WPF中的实现(四) 事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中的实现(三)命令绑定 MVVM模式解析和在WPF中的实现(四)事件绑定 MVVM模式解析和在WPF中的实现(五)View和ViewModel的通信 MVVM模式解析和在WPF中的实现(六)用依赖注入的方式配置ViewModel并注册消息 0x00 为什么要事件绑定 这个问题其实是很好理解的,因为事件…
EventHandler代理 用来表示处理一个没有事件数据(event data)的事件(event)的 方法. 无论何时事件发生时,事件代理就被调用来触发以前事件驱动的其他事件(监听当前事件TCurrentEvent += TListenerEvent). public delegate void EventHandler( Object sender, //事件发起者 EventArgs e //处理事件数据的对象 ) EventArgs 类是事件变量的基类,提供事件数据类型给某个事件. S…
事件概述 委托是一种类型可以被实例化,而事件可以看作将多播委托进行封装的一个对象成员(简化委托调用列表增加和删除方法)但并非特殊的委托,保护订阅互不影响. 基础事件(event) 在.Net中声明事件使用关键词event,使用也非常简单在委托(delegate)前面加上event: class Program { /// <summary> /// 定义有参无返回值委托 /// </summary> /// <param name="i"></…
系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中的实现(三)命令绑定 MVVM模式解析和在WPF中的实现(四)事件绑定 MVVM模式解析和在WPF中的实现(五)View和ViewModel的通信 MVVM模式解析和在WPF中的实现(六)用依赖注入的方式配置ViewModel并注册消息 0x00 为什么要事件绑定 这个问题其实是很好理解的,因为事件是丰富多样的,单纯的命令绑定远不能覆盖所有的事件.例…
事件参数:object sender - 事件主体EventArgs e - 事件数据函数体 - 我进行的操作 常用事件:点击事件click (1)Load事件:该事件在窗体加载到内存时发生,即在第一次显示窗体前发生.(2)Activated事件:该事件在窗体激活时发生.(3)Deactivate事件:该事件在窗体失去焦点成为不活动窗体时发生.(4)Resize事件:该事件在改变窗体大小时发生.(5)Paint事件:该事件在重绘窗体时发生.(6)Click事件:该事件在用户单击窗体时发生.(7)…
为什么要事件绑定 这个问题其实是很好理解的,因为事件是丰富多样的,单纯的命令绑定远不能覆盖所有的事件.例如Button的命令绑定能够解决Click事件的需求,但Button的MouseEnter.窗体的Loaded等大量的事件要怎么处理呢?这就用到了事件绑定. 事件绑定 要使用事件绑定需要借助System.Windows. interactivity,如果安装了Blend,里面就包含了这个dll.需要在Interaction.Triggers里面添加一个或多个EventTrigger并指定关注的…
Cp11事件 类型之所以提供事件通知功能,是因为类型维护了一个已登记方法的列表,事件发生后,类型将通知列表登记的所有方法: 事件模型建立在委托的基础上.委托是调用回调方法的一种类型安全的方式. 设计事件类型 定义事件参数 EventArgs 定义事件成员 public event 委托类型 事件名称: sender之所用Object,一个是考虑继承,一个是考虑灵活: 返回值是void: 定义负责引发事件的方法来通知事件的登记对象 protected virtual void OnNewMain(…
什么是事件?事件有哪些?怎么用事件? 一.什么是事件? 事件(Event) 基本上说是一个用户操作,如按键.点击.鼠标移动.输入值改变等等,或者是一些出现,如系统生成的通知.应用程序需要在事件发生时响应事件. 比较常用的有:窗体加载事件,鼠标事件,键盘事件,值改变事件,每个事件都有相应的操作响应. 二.事件有哪些? 在C#的命名空间System下,有个EventArgs类,它包含事件数据的类的基类,并提供用于不包含事件数据的事件的值.下面简单总结下常用的事件: 1.窗体加载事件 当我们写Wind…
并发编程概述   前言 说实话,在我软件开发的头两年几乎不考虑并发编程,请求与响应把业务逻辑尽快完成一个星期的任务能两天完成绝不拖三天(剩下时间各种浪),根本不会考虑性能问题(能接受范围内).但随着工作内容的变化,一些问题,它的解决方案已经让我避不开并发编程这一块知识点了.为了一劳永逸,此系列与并发编程有关的系列文章诞生,希望对各有有所帮助.   基础术语 同步(synchronization):关于协调线程或进程之间的活动,并确保被多个线程或进程访问的数据一直有效,同步允许线程和进程一致地操作…
本文中,我将通过两个范例由浅入深地讲述什么是委托.为什么要使用委托.委托的调用方式.事件的由来..Net Framework中的委托和事件.委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论. 一.委托是什么 来看下面这两个最简单的方法,它们不过是在屏幕上输出一句问候的话语: public void GreetPeople(string name) { EnglishGreeting(name); } public void EnglishGreeting(string na…
前两章学习了WPF事件的工作原理,现在分析一下在代码中可以处理的各类事件.尽管每个元素都提供了许多事件,但最重要的事件通常包括以下5类: 生命周期事件:在元素被初始化.加载或卸载时发生这些事件. 鼠标事件:这些事件是鼠标动作的结果. 键盘事件:这些事件是键盘动作(如按下键盘上的键)的结果. 手写笔事件:这些事件是使用类似钢笔的手写笔的结果.在平板电脑上用手写笔代替鼠标. 多点触控事件:这些事件是一根或多根手指在多点触控屏上触摸的结果.尽在Windows7中支持这些事件. 一.生命周期事件 当首次…
目录 事件绑定意义 无参数的事件绑定 带EventArgs参数的事件绑定 使用事件绑定 扩展:基于InvokeCommandAction源码的实现(推荐) 参考资料 事件绑定意义 一般事件的处理程序都放在界面后台,通过事件绑定可以把事件处理程序放在ViewModel中,实现界面和逻辑的解耦. 要使用事件绑定需要借助System.Windows.interactivity(安装了Blend就有),如果电脑上找不到,可以通过NuGet安装System.Windows.Interactivity.WP…
0. 文章目的   本文面向有一定.NET C#基础知识的学习者,介绍.NET中事件的相关概念.基本知识及其使用方法 1. 阅读基础   理解C#基本语法(方法的声明.方法的调用.类的定义) 2. 从委托说起,到底什么是事件 2.1 方法与委托 (1)从一个案例开始说起   在讨论本节主题之前,我们先来看一个实际问题.下面是一个方法,作用是把两个值相加,然后将相加的结果通过控制台程序打印出来,接着再返回相加的值: int Add(int a, int b) { int n = a + b; Co…
MVVM框架从WPF移植到UWP遇到的问题和解决方法 0x00 起因 这几天开始学习UWP了,之前有WPF经验,所以总体感觉还可以,看了一些基础概念和主题,写了几个测试程序,突然想起来了前一段时间在WPF下写的简易的MVVM框架(MVVM模式和在WPF中的实现),都是.NET平台的,移到通用类库里只要复制粘贴就可以了吧.抱着这个心态试了下,结果代码一片红,折腾了一下午总算搞得差不多了,第二天写了个测试试了下感觉基本问题应该是解决了.现在总结一下自己踩到的坑. 0x01 命令绑定 之前在WPF中实…
这是1年多以前我在公司所做讲座的讲义,现在与园友们分享,欢迎拿去使用.一起讨论.文中有若干思考题,对园友们是小菜一碟.另有设计模式讲义一篇,随后发布.博文上了首页,感谢博客园团队推荐,也感谢所有园友的支持.经园友提醒,我们推荐新手使用ReSharper插件,它可以自动提示不符合代码规范的地方. 1 概述 1.1 意义 “.NET平台开发规范”包括两方面内容:代码规范.最佳实践. (1) 规范和优美的代码风格有助于思路清晰. (2) 规范和优美的代码有助于团队沟通交流. (3) 规范和优美的代码有…
注:本文适用.net 2.0+的winform项目 目的: 点击页面中的target="_blank"链接时,弹出新窗体 页面中有window.close()操作时,关闭窗体 上述窗体是指WebBrowser所在的Form,基本上,上述目的就是让该窗体表现得像个正常浏览器而已. 一.弹出新窗体 WebBrowser(下称wb)自带NewWindow事件,所以直接注册该事件即可: private void wb_NewWindow(object sender, CancelEventAr…
概述 异步通知是客户端开发中常见的需求,比如在一个网络处理线程中要通知UI线程更新等等. 通常在Windows编程中,为了方便,我们一般会向UI线程的窗口句柄Post/Send一个窗口消息从而达到将非UI线程的事件切换到UI线程处理的目的. 在SOUI引入通知中心以前要在SOUI中处理非UI线程事件我也推荐用上面的方法. 使用窗口消息至少有以下两个不足: 1.需要在线程中持有一个窗口句柄. 2.发出的消息只能在该窗口句柄的消息处理函数里处理. SNotifyCenter 最新的SOUI引入了一个…
1.自定义帮助类,用于简化 SecondaryView 的管理UI/MultipleViews/SecondaryViewHelper.cs /* * SecondaryViewHelper - 自定义的一个帮助类,用于简化 SecondaryView 的管理 */ using System; using System.ComponentModel; using Windows.UI.Core; using Windows.UI.ViewManagement; namespace Windows…
[源码下载] 背水一战 Windows 10 (4) - UI: 多窗口 作者:webabcd 介绍背水一战 Windows 10 之 UI 多窗口 示例1.自定义帮助类,用于简化 SecondaryView 的管理UI/MultipleViews/SecondaryViewHelper.cs /* * SecondaryViewHelper - 自定义的一个帮助类,用于简化 SecondaryView 的管理 */ using System; using System.ComponentMod…
初识一件事物我们会有陌生,我们慢慢地去了解它就会懂,让我带你们一起了解吧. 一.Form是.Net Framework 定义好的一个最基本的窗体类,具有窗体基本属性和方法 属性              说明 MaximizeBox    确定窗体标题栏的右上角------是否有最大化的框-----------默认为True ShowInTaskbar     确定窗体是否出现在----------任务栏中------默认为True StartPosition     确定窗体第一次出现的---…
题外话 不出意外,本片内容应该是最后一篇关于.Net技术的博客,做.Net的伙伴们忽喷忽喷..Net挺好的,微软最近在跨平台方面搞的水深火热,更新也比较频繁,而且博客园的很多大牛也写的有跨平台相关技术的博客.做.Net开发块五年时间,个人没本事,没做出啥成绩.想象偶像梅球王,年龄都差不多,为啥差别就这么大.不甘平庸,想趁机会挑战下其他方面的技术,正好有一个机会转前段开发. 对于目前正在从事或者工作中会用到WPF技术开发的伙伴,此片内容不得不收藏,本片介绍的八个问题都是在WPF开发工作中经常使用到…
.NET开发规范教程 这是1年多以前我在公司所做讲座的讲义,现在与园友们分享,欢迎拿去使用.一起讨论.文中有若干思考题,对园友们是小菜一碟.另有设计模式讲义一篇,随后发布. 1 概述 1.1 意义 “.NET平台开发规范”包括两方面内容:代码规范.最佳实践. (1) 规范和优美的代码风格有助于思路清晰. (2) 规范和优美的代码有助于团队沟通交流. (3) 规范和优美的代码有助于学习近20年(后设计模式时代)现代面向对象思想发展的精华. .NET平台是继Java平台之后又一伟大的带集大成面向对象…
文本框Label MaxLength 设置输入文本最大字符 Multiline  表示是否输入多行文本 passwodechar 指示在文本框显示的字符,而不是实际内容 ReadeOnly 表示是否可以编辑 组合框comboBox Items 组合框中的项 DropDownStyle  定义组合框的风格,可以设置为不可以编辑 SelectdIndex 获取选定项目的索引号,从0开始; SekectedItem  获取当前选定的项 CombooBox.ObjectCollection类型常用属性和…
在前面一篇博文记录了C# APM异步编程的知识,今天再来分享一下EAP(基于事件的异步编程模式)异步编程的知识.后面会继续奉上TPL任务并行库的知识,喜欢的朋友请持续关注哦. EAP异步编程算是C#对APM的一种补充,让异步编程拥有了一系列状态事件.如果你看过本系列的前一篇文章<C# 异步编程1 APM 异步程序开发>,并假设你是微软C#语言开发组的一员,现在让你来设计基于事件的异步编程模式.那你是会利用之前的APM进行改造?还是进行再次创造呢?所以当你对相关dll进行反编译,会惊喜的发现EA…
  在使用WPF进行应用程序的开发时,经常会为DataGrid生成行号,这里主要介绍一下生成行号的方法.通常有三种方法,这里主要介绍其中的两种,另一种简单提一下. 1. 直接在LoadingRow事件中操作. 这种方式是在code behind文件中操作.即相应的*.xaml.cs文件. 代码如下: this.dataGridSoftware.LoadingRow += new EventHandler<DataGridRowEventArgs>(this.DataGridSoftware_L…
一.Form窗体样式 1.FormBorderStyle (1)None (2)FixedSingle (3)Fixed3D 个人感觉跟Fixedsingle区别不大 (4)FixedDialog 不可以通过鼠标来拖拉窗体的边框来调节大小 (5)Sizable 可以通过鼠标来拖拉窗体的边框来调节大小 (6)FixedToolWindow 不可以通过鼠标来拖拉窗体的边框来调节大小 (7)SizableToolWindow 可以通过鼠标来拖拉窗体的边框来调节大小 2.Name 窗体代码中的窗体名称.…
以下这些变量是由powershell创建和维护的.ls Variable: 可以获取到所有默认的变量, 每个版本的Powershell可能有差异 $$包含会话所收到的最后一行中的最后一个令牌. $? 包含最后一个操作的执行状态.如果最后一个操作成功,则包含 TRUE,失败则包含 FALSE. $^包含会话所收到的最后一行中的第一个令牌. $_包含管道对象中的当前对象.在对管道中的每个对象或所选对象执行操作的命令中,可以使用此变量. $Args包含由未声明参数和/或传递给函数.脚本或脚本块的参数值…