public partial class DelayTextBox : TextBox
{
#region private globals private System.Timers.Timer DelayTimer; // used for the delay
private bool TimerElapsed = false; // if true OnTextChanged is fired.
private bool KeysPressed = false; // makes event fire immediately if it wasn't a keypress #endregion #region object model // Delay property
private int delayTime = ; public int DelayTime
{
get { return delayTime; }
set { delayTime = value; }
} #endregion #region ctor public DelayTextBox()
{
InitializeComponent(); // Initialize Timer
DelayTimer = new System.Timers.Timer(delayTime);
DelayTimer.Elapsed += new ElapsedEventHandler(DelayTimer_Elapsed);
} #endregion #region event handlers void DelayTimer_Elapsed(object sender, ElapsedEventArgs e)
{
// stop timer.
DelayTimer.Enabled = false; // set timer elapsed to true, so the OnTextChange knows to fire
TimerElapsed = true; // use invoke to get back on the UI thread.
this.Invoke(new DelayOverHandler(DelayOver), null);
} #endregion #region overrides protected override void OnKeyPress(KeyPressEventArgs e)
{
if (!DelayTimer.Enabled)
DelayTimer.Enabled = true;
else
{
DelayTimer.Enabled = false;
DelayTimer.Enabled = true;
} KeysPressed = true;
base.OnKeyPress(e);
} protected override void OnTextChanged(EventArgs e)
{
// if the timer elapsed or text was changed by something besides a keystroke
// fire base.OnTextChanged
if (TimerElapsed || !KeysPressed)
{
TimerElapsed = false;
KeysPressed = false;
base.OnTextChanged(e);
}
} #endregion #region delegates public delegate void DelayOverHandler(); #endregion #region private helpers private void DelayOver()
{
OnTextChanged(new EventArgs());
} #endregion }

C# 文本框 TextChanged 延时触发的更多相关文章

  1. html5与js关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的value点击全选状态onclick="select();"。做购物车页面时会要用到。

    关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的点击全选状态onclick="s ...

  2. javascript 文本框值变化触发事件

    javascript 文本框值变化触发事件jo.find(".price").bind('input onpropertychange', function () { me.cal ...

  3. jQuery监听文本框值改变触发事件(propertychange)

    完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  4. 文本框变更值触发js事件

    //输入数量更新,不需要失去焦点才触发 $(document).on('input', "input[id^='itemquantity']", function () { sav ...

  5. js入门-文本框输入特定内容控制另一个文本框

    在填写表单时,有时需要某些文本框隐藏,当一文本框输入特定内容时才会显示隐藏的文本框,这一功能可以用onchange事件或oninput事件实现.下面对比下两种方法实现的区别: onchange()定义 ...

  6. [JS] 鼠标点击文本框清空默认值,离开文本框恢复默认值

    在使用文本框的时候,若设定了初始值,选择文本框进行输入的时候要将本来的内容进行删除,会显得非常麻烦 可以在文本框属性定义触发onfocus和onblur两个事件时对应的js功能 下面以asp.net代 ...

  7. 在GridView控件内文本框实现TextChanged事件

    本篇是教你实现GridView控件内的TextBox文本框实现自身的TextChanged事件.由于某些功能的需求,GridView控件内嵌TextBox,当TextBox值发生变化时,触发TextC ...

  8. js实现文本框或文本域在用户输入时(oninput)触发事件,操作元素

    写在前面:给不同的文本框设定同样的效果,当文本框没有内容输入时,‘下一步’按钮不可用且透明度为0.5.当有内容输入时(并不是获得焦点时focus),‘下一步’按钮状态可用, 且透明度为1. <s ...

  9. JS事件 文本框内容改变事件(onchange)通过改变文本框的内容来触发onchange事件,同时执行被调用的程序。

    文本框内容改变事件(onchange) 通过改变文本框的内容来触发onchange事件,同时执行被调用的程序. 如下代码,当用户将文本框内的文字改变后,弹出对话框"您改变了文本内容!&quo ...

随机推荐

  1. 转】使用log4jdbc记录SQL信息

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4081848.html 感谢! 一.log4jdbc的简单介绍 使用log4jdbc在不改变原有代码的情况下,就可 ...

  2. Linux下的sed流编辑器命令详解

    sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内 ...

  3. 左手坐标系&右手坐标系

    [左手坐标系&右手坐标系] 左手坐标系的正方向.从原点看到某轴正向时,逆时针即为正方向.相反地,从某轴正方向看看原点时,为顺时针即为正方向. 如果判断左手坐标系下叉积的方向.如果A.B向量首尾 ...

  4. HDU 2196 Computer (树dp)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2196 给你n个点,n-1条边,然后给你每条边的权值.输出每个点能对应其他点的最远距离是多少 ...

  5. HDU 5776 sum (前缀和)

    题意:给定 n 个数,和 m,问你是不是存在连续的数和是m的倍数. 析:考虑前缀和,如果有两个前缀和取模m相等,那么就是相等的,一定要注意,如果取模为0,就是真的,不要忘记了,我当时就没记得.... ...

  6. Mongo数据模型

    Mongo数据模型 一个Mongo系统(参考上述部署)包含一组数据库 一个 database 包含一组collection 一个 collection 包含一组document 一个 document ...

  7. Common Converters in WPF/Silverlight

    using System; using System.ComponentModel; using System.Globalization; using System.Windows.Data; na ...

  8. UI:tomcat(说话小程序)、相框动画、UISgmentcontrol、UISwitch

    UISegmentedControl 分段控件 //1. UISegmentedControl 分段控件 (就是一个一个的按钮) //分段显示的标题是以一个数组存储的 NSArray * titles ...

  9. DbHelperSQL和Dapper数据访问的性能对比

    http://www.cnblogs.com/finesite/archive/2012/08/23/2652491.html

  10. Use jQuery to hide a DIV when the user clicks outside of it

    http://stackoverflow.com/questions/1403615/use-jquery-to-hide-a-div-when-the-user-clicks-outside-of- ...