.NET 事件 - 什么是对象发送者

sender 和 eventArgs 是什么意思/指的是什么? 设想: 我正在尝试构建具有删除功能的自定义控件,并且我希望能够删除在包含许多相同自定义控件的页面上单击的控件。 答案 发送者是该操作所针对的控件(例如 OnClick,它是按钮)。 EventArgs 是该事件的实现者可能会发现有用的参数。 克里斯所说的是你可以这样做: protected void someButton_Click (object sender, EventArgs ea) { Button someButton = sender as Button; if(someButton != null) { someButton.Text = "I was clicked!"; } } 来自: stackoverflow.com

“input”元素的“change”和“input”事件之间的区别

有人可以告诉我两者之间有什么区别吗change和input事件是? 我正在使用 jQuery 添加它们: $('input[type="text"]').on('change', function() { alert($(this).val()); }) 它还适用于input代替change。 也许事件顺序相对于焦点有一些不同? 答案 根据这个帖子: **oninput**当通过用户界面更改元素的文本内容时,会发生事件。 onchange 当元素的选择、选中状态或内容时发生have changed 。返回(输入)并且值已更改。 <input>,<select>, 和<textarea>。 长话短说: oninput:文本内容所做的任何更改 onchange : 如果是<input />:变更 +失去焦点 如果是<select>:更改选项 $("input, select").on("input", function () { $("pre").prepend("\nOn input. | " + this.tagName + " | " + this.value); }).on("change", function () { $("pre").prepend("\nOn change | " + this.tagName + " | " + this.value); }).on("focus", function () { $("pre").prepend("\nOn focus | " + this....

“对象发送者”和“ EventArgs E”参数的用途是什么?

的情况下Page_Load,,,,Init和其他页面事件,这些用途是什么(object sender, EventArgs e)参数? 示例将更有帮助。 答案 EventArgs e是一个称为E的参数,其中包含事件数据,请参阅Eventargs MSDN页面以获取更多信息。 Object Sender是一个称为发送者的参数,其中包含对提出事件的控制/对象的引用。 事件ARG类:http://msdn.microsoft.com/en-us/library/system.eventargs.aspx 例子: protected void btn_Click (object sender, EventArgs e){ Button btn = sender as Button; btn.Text = "clicked!"; } **Edit:**单击按钮时,将触发BTN_Click事件处理程序。“对象发送者"部分将是对单击的按钮的引用 来自: stackoverflow.com

“异步事件”的定义容易理解吗?

我经常遇到这个术语,即使在谷歌搜索后,仍然无法理解它到底意味着什么。 谢谢! 答案 非编程示例: Synchronous你晚餐想吃披萨,但你不适合冷冻披萨。 Asynchronous你想一边玩《WOW》一边吃披萨当晚餐。 那么区别是什么呢? 来自: stackoverflow.com

<输入>元素上的jQuery变更事件 - 有什么方法保留上一个值?

我今天早上一直在搜索,但我找不到任何简单的解决方案……基本上,我想捕获输入元素的更改,但也知道先前的值。 这是一个变更事件,最简单的形式的输入元素。显然,我可以用$(elem).val()获得新值,但是我是否缺少偷偷摸摸的方法来获得上一个值?我在jQuery API中看不到任何事情可以做到这一点,但是也许有人已经做到了并且有一些技巧? <script> $(document).ready(function(){ $('#myInputElement').bind('change', function(){ //var oldvalue = ??? var newvalue = $(this).val(); }); }); </script> <input id="myInputElement" type="text"> 我不反对写自己的解决方案,我只想确保我不会在这里重新创建轮子。 答案 一种更好的方法是使用.data存储旧值。这可以节省您应该远离的全局var的创建,并将封装在元素中的信息保留。一个真实的示例,说明为什么全局var是不好的这里 例如 <script> //look no global needed:) $(document).ready(function(){ // Get the initial value var $el = $('#myInputElement'); $el.data('oldVal', $el.val() ); $el.change(function(){ //store new value var $this = $(this); var newValue = $this.data('newVal', $this.val()); }) .focus(function(){ // Get the value when input gains focus var oldValue = $(this).data('oldVal'); }); }); </script> <input id="myInputElement" type="text"> 来自: stackoverflow....

Android Edittext Delete(Backspace)密钥事件

如何检测EDITTEXT的DELETE(Backspace)密钥事件?我已经尝试使用TextWatcher,但是当EditText为空时,当我按DELETE键时,什么也不会发生。我想检测删除键,即使没有文本,也要按EDITTEXT。 答案 笔记:onKeyListener不适用于软键盘。 您可以设置OnKeyListener为你editText因此您可以检测到任何键按 编辑:我们正在检查一个常见的错误KeyEvent.KEYCODE_BACK为了backspace,但真的是KeyEvent.KEYCODE_DEL(真的这个名字很令人困惑!) editText.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { //You can identify which key pressed buy checking keyCode value with KeyEvent.KEYCODE_ if(keyCode == KeyEvent.KEYCODE_DEL) { //this is for backspace } return false; } }); 来自: stackoverflow.com

Android OnClickListener-标识一个按钮

我有活动: public class Mtest extends Activity { Button b1; Button b2; public void onCreate(Bundle savedInstanceState) { ... b1 = (Button) findViewById(R.id.b1); b2 = (Button) findViewById(R.id.b2); b1.setOnClickListener(myhandler); b2.setOnClickListener(myhandler); ... } View.OnClickListener myhandler = new View.OnClickListener() { public void onClick(View v) { // MY QUESTION STARTS HERE!!! // IF b1 do this // IF b2 do this // MY QUESTION ENDS HERE!!! } } } 如何检查已单击哪个按钮? 答案 您将学习以一种简单的方式学习的方法是: public class Mtest extends Activity { Button b1; Button b2; public void onCreate(Bundle savedInstanceState) { ....

Android Spinner:获取选定的项目更改事件

当所选项目更改时,如何设置旋转器的事件侦听器? 基本上,我想做的是类似的事情: spinner1.onSelectionChange = handleSelectionChange; void handleSelectionChange(Object sender){ //handle event } 答案 以前的一些答案不正确。它们适用于其他小部件和视图,但旋转器小部件显然指出: 微调器不支持项目单击事件。 更好地使用OnItemSelectedListener()反而: spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { // your code here } @Override public void onNothingSelected(AdapterView<?> parentView) { // your code here } }); 这对我有用。 请注意,在构建视图时也会调用OnItemselected方法,因此您可以考虑将其放入其中onCreate()方法调用。 来自: stackoverflow.com

Android 应用程序上的自定义事件监听器

我需要设置一个简单的事件侦听器来刷新ListView偶尔。 我知道对于按下按键或按钮之类的事件我只需要实现Handler。 我已经做了一切,但还是被困在这里。 答案 定义回调接口 public interface NewsUpdateListener { void onNewsUpdate(<News data to be passed>); } 在获取 RSS 提要的后台线程上提供注册工具 class <Background processing class name> { .... ArrayList<NewsUpdateListener> listeners = new ArrayList<NewsUpdateListener> (); .... public void setOnNewsUpdateListener (NewsUpdateListener listener) { // Store the listener object this.listeners.add(listener); } .... } 当有新闻可用时触发回调 .... for (listener : listeners) { listener.onNewsUpdate(<News data to be passed>); } .... 在初始化期间在某处注册监听器 .... <class <Background processing class object>.registerListener ( new OnNewsUpdateListener() { onNewsUpdate(<News Data>) { // process news data runOnUIThread(new Runnable() { public void run() { // refresh list view } } } } ....

Android 自定义事件监听器

假设我想为我的Class创建自己的事件监听器,我该怎么做? 答案 public class CustomView extends View(){ OnCustomEventListener mListener; : ://some code : : 创建一个将由您的活动实现的接口: public interface OnCustomEventListener { void onEvent(); } public void setCustomEventListener(OnCustomEventListener eventListener) { mListener = eventListener; } 现在您需要知道事件实际发生的时间。 onTouchEvent(MotionEvent ev) { if (ev.getAction==MotionEvent.ACTION_DOWN) { if(mListener!=null) mListener.onEvent(); } } 同样,您可以创建您想要的特定事件。 在您的活动中,您可以使用 customView 对象来设置 eventListener,如下所示: customView.setCustomEventListener(new OnCustomEventListener() { public void onEvent() { //do whatever you want to do when the event is performed. } }); 来自: stackoverflow.com

Angular 2 - 事件列表

我是 Angular 2 的新手。从 AngularJS 到 Angular 2 的相应事件是什么?ng-click点击) 怎么样ng-init以及所有其他事件? 请帮忙! 谢谢 答案 默认处理的事件应该从原始 HTML DOM 组件的事件映射: http://www.w3schools.com/jsref/dom_obj_event.asp 只需删除on字首。 onclick—>(click) onkeypress—>(keypress) ETC… 您还可以创建自定义事件。 然而ngInit不是 HTML 事件,这是 Angular 组件生命周期的一部分,在 Angular 2 中它们是使用"钩子"处理的,“钩子"基本上是组件内的特定方法名称,每当组件进入特定周期时就会调用这些方法名称。 ngOnInit ngOnDestroy ETC… 来自: stackoverflow.com

Angular 2:focusin 和 focusout 可以在一个事件中吗?

能focusin和focusout参加一项活动? hide(e:any) { $('.suggestion').hide(); } show(e:any) { $('.suggestion').show(); } <section class="search-bar-wrapper" (focusout)="hide($event)" (focusin)="show($event)"> 答案 首先你需要添加tabindex归因于section使其获得焦点事件。 当元素可聚焦时,将触发焦点事件。click同一元素的事件。 focus和focusout两者是不同的事件,我们无法合并它们 您可以使用*ngIf还 <section class="search-bar-wrapper" tabindex="-1" (focus)="show($event)" (focusout)="hide($event)" > <div class="suggestion" *ngIf="canSee"> This is a suggestion </div> 在组件的类中 casSee: boolean = false; show(e: any) { this.canSee = true; } hide(e: any) { this.canSee = false; } 来自: stackoverflow.com

Angular2,hostListener,我该如何针对元素?我可以基于课堂定位吗?

在Angular2中,我该如何瞄准hostlistener装饰器中的元素? @HostListener('dragstart', ['$event']) onDragStart(ev:Event) { console.log(ev); } @HostListener('document: dragstart', ['$event']) onDragStart(ev:Event) { console.log(ev); } @HostListener('myElement: dragstart', ['$event']) onDragStart(ev:Event) { console.log(ev); } @HostListener('myElement.myClass: dragstart', ['$event']) onDragStart(ev:Event) { console.log(ev); } 这两个第一件作品。我尝试过的任何其他事情都会增加EXCEPTION: Unsupported event target undefined for event dragstart 那么,我可以将其实现到目标元素吗?如何? 答案 @HostListener()仅支持window,,,,document, 和body作为全局事件目标,否则仅支持组件主机元素。 来自: stackoverflow.com

angular度的全球事件

没有等效的$scope.emit()或者$scope.broadcast()在angular度? 我知道EventEmitter功能,但据我了解,它只会向父 HTML 元素发出一个事件。 如果我需要在FX之间进行交流该怎么办。兄弟姐妹或DOM根部的组件与元素嵌套了多个级别的成分? 答案 没有等效的$scope.emit()或者$scope.broadcast()来自Angularjs。组件内部的EventEmitter即将结束,但是正如您提到的那样,它只会向直接的父组件发出事件。 在Angular中,我将在下面尝试解释其他替代方案。 @input()绑定允许将应用程序模型连接到有向对象图(根到叶子)中。组件变更检测器策略的默认行为是将所有连接组件的所有绑定的应用程序模型传播到应用程序模型。 除了:有两种类型的模型:查看模型和应用程序模型。应用程序模型通过@Input()绑定连接。视图模型是一个组件属性(未用@Input()装饰),该属性绑定在组件的模板中。 回答您的问题: 如果我需要在兄弟姐妹组件之间进行交流怎么办? Shared Application Model:兄弟姐妹可以通过共享的应用程序模型(就像Angular 1一样)进行通信。例如,当一个兄弟姐妹更改模型时,与同一模型具有绑定的另一个兄弟姐妹会自动更新。 Component Events:子组件可以使用 @Output() 绑定向父组件发出事件。 Service Events:组件可以订阅服务事件。例如,两个兄弟姐妹组件可以订阅相同的服务事件,并通过修改其各自的模型来做出响应。以下更多内容。 如何在根部分和组件之间进行交流,并嵌套了几个级别? Shared Application Model:通过@Input()绑定,可以将应用模型从根组件传递到深嵌套的子组件。从任何组件中更改模型将自动传播到共享相同模型的所有组件。 Service Events :您还可以将EventEmitter移至共享服务,该服务允许任何组件注入服务并订阅该事件。这样,根组件可以调用服务方法(通常是突变模型),进而散发事件。几层层,这是一个还注入服务并订阅同一事件的孙子组件,可以处理。任何更改共享应用程序模型的事件处理程序,都会自动传播到依赖它的所有组件。这可能是最接近的$scope.broadcast()从Angular 1发出。下一节更详细地描述了这一想法。 Example of an Observable Service that uses Service Events to Propagate Changes 这是可观察服务的示例,该服务使用服务事件来传播更改。当添加待办事项时,该服务会发出通知其组件订户的事件。 export class TodoItem { constructor(public name: string, public done: boolean) { } } export class TodoService { public itemAdded$: EventEmitter<TodoItem>; private todoList: TodoItem[] = []; constructor() { this....

C

我有一个包含一些项目的列表框。 Item 1 Item 2 Item 3 如果我双击第 2 项,则会弹出一个消息框,显示"第 2 项" 我该怎么做? 答案 void listBox1_MouseDoubleClick(object sender, MouseEventArgs e) { int index = this.listBox1.IndexFromPoint(e.Location); if (index != System.Windows.Forms.ListBox.NoMatches) { MessageBox.Show(index.ToString()); } } 这应该有效…检查 来自: stackoverflow.com