如何在控件实例化后立即发送自定义事件消息?

2024-03-14

创建此自定义控件并在客户端中测试它时,发送 ValueChanged() 事件时出现空异常错误:

自定义控件来源:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

namespace customevent
{
    [DefaultEvent("ValueChanged")]
    public partial class UserControl1 : UserControl
    {
        private int m_value;

        public delegate void ValueChangedHandler();
        [Category("Action")]
        [Description("Value changed.")]
        public event ValueChangedHandler ValueChanged;

        public int Value
        {
            get { return m_value; }
            set { 
                m_value = value;
                ValueChanged();
            }
        }

        public UserControl1()
        {
            InitializeComponent();
        }
        public UserControl1(int iValue)
        {
            this.Value = iValue;
            InitializeComponent();
        }

    }
}

然后以测试形式:

    private void Form1_Load(object sender, EventArgs e)
    {
       userControl11.Value = 100;
    }

    private void userControl11_ValueChanged()
    {
        MessageBox.Show(userControl11.Value.ToString());
    }

或者代替 form_load,在构造函数中执行此操作:

    private void InitializeComponent()
    {
        this.userControl11 = new customevent.UserControl1(100);

您应该将事件处理声明如下:

public event EventHandler ValueChanged;

protected virtual void OnValueChanged(object sender, EventArgs e)
{
    if (ValueChanged != null)
    {
       ValueChanged(sender, e);
    }
}

public int Value
{
    get { return m_value; }
    set { 
        if (m_value == value) return;
        m_value = value;
        OnValueChanged(this, EventArgs.Empty);
    }
}

PS:有一个接口 INotifyPropertyChanged,您应该使用它来遵守标准 .NET 数据绑定规则。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在控件实例化后立即发送自定义事件消息? 的相关文章

  • 起订量要求?违背了目的?

    是否需要虚拟化您想要模拟的所有属性访问器就违背了模拟的目的 我的意思是 如果我必须修改我的对象并虚拟化我想要模拟的每个访问器 我难道不能继承我的类并自己模拟它吗 你的问题非常有效 但如果你仔细想想 没有其他方法可以模拟课程 如果你采用一个接
  • Accept() 是线程安全的吗?

    我目前正在用 C 语言为我正在做的课程编写一个简单的网络服务器 我们的一项要求是实现一个线程池来使用 pthread 处理连接 我知道我将如何粗略地执行此操作 在主线程中调用accept并将文件描述符传递给freee线程 但是我的朋友建议了
  • 在Application_AquireRequestState事件中用POST数据重写Url

    我有一个在其中注册路线的代码Application AcquireRequestState应用程序的事件 注册路由后 我会在 Http 运行时缓存中设置一个标志 这样我就不会再次执行路由注册代码 在此事件中注册路线有特定原因Applicat
  • 访问“if”语句之外的变量

    我怎样才能使insuranceCost以外可用if陈述 if this comboBox5 Text Third Party Fire and Theft double insuranceCost 1 在 if 语句之外定义它 double
  • Qt 计算和比较密码哈希

    目前正在 Qt 中为测验程序构建面向 Web 的身份验证服务 据我了解 在数据库中存储用户密码时 必须对其进行隐藏 以防落入坏人之手 流行的方法似乎是添加的过程Salt https en wikipedia org wiki Salt cr
  • 如何使用 wpf webbrowser 将数据发布到 Web 服务器

    我想从数据库获取数据并使用它来让用户登录到网站 我有一个包含 Web 浏览器控件的 wpf 页面 我有这样的代码 用于将用户登录到用 php 编写的网站
  • 序列化和反序列化 Visual Studio 解决方案文件 - 或以编程方式编辑?

    我想以编程方式添加和删除项目 解决方案文件夹和其他项目 例如解决方案的资源文件 但我不确定最好的方法是什么 对于那些不知道的人 高度简化 解决方案文件 sln 通常如下所示 Microsoft Visual Studio Solution
  • 指向字节数组的指针

    由于 Misra C 的要求 我的一位同事想要使用指针声明 但我遇到了一些问题 Misra 安全关键指南 不会让我们纯粹的程序员使用指针 但会让我们对数组字节进行操作 他打算获取一个指向字节数组的指针 因此我们不会在堆栈上传递实际的数组 T
  • Visual Studio 2010 设计器运行时出错

    我正在使用 VS2010 如果我在设计器模式下打开一个表单并运行我的应用程序 设计器选项卡将不再显示表单设计器 而是会显示一个错误 并且只能通过重新启动 IDE 来修复 为了防止在加载设计器之前可能发生的数据丢失 必须解决以下错误 1 Er
  • 手动将 ClientBase 集合类型从 Array[] 更改为 List<>

    我将自己的 WCF 代理与 Client Base 一起使用 我想做一些类似于 svc util 中的 ct 属性的操作 并告诉代理返回 List 集合类型 我不能使用 List 因为实体由 nhibernate 管理 所以我必须使用 IL
  • 操纵 setter 以避免 null

    通常我们有 public string code get set 如果最终有人将代码设置为 null 我需要避免空引用异常 我尝试这个想法 有什么帮助吗 public string code get set if code null cod
  • 编译器错误“错误:在文件范围内可变地修改了‘字符串’”

    考虑 include
  • 您可以在一个 Windows Azure 实例上部署多个 Web 应用程序吗?

    是否可以在一个 windows azure 小型计算实例中运行一堆 Web 应用程序 我正在考虑使用 Azure 作为放置一堆处于开发和非生产状态的项目 Web 应用程序 的地方 有些实际上已经被封存了 但我想在某个地方有一个活跃的实例 我
  • 使用 AdHocWorkspace 会导致“不支持语言‘C#’”。

    在VS2015中使用Microsoft CodeAnalysis CSharp Workspaces的RC2 这段代码会抛出异常 var tree CSharpSyntaxTree ParseText var workspace new A
  • 从事务范围调用 WCF 服务方法

    我有这样的代码 using TransactionScope scope TransactionScopeFactory CreateTransactionScope some methodes calls for which scope
  • 使用(linq to sql)更新错误

    我有两个表 通过外键 CarrierID 绑定 Carrier CarrierID CarrierName CarrierID 1 CarrierName DHL CarrierID 2 CarrierName Fedex Vendor V
  • 如何使用收益返回和递归获得字母的每个组合?

    我有几个像这样的字符串列表 可能有几十个列表 1 A B C 2 1 2 3 3 D E F 这三个仅作为示例 用户可以从几十个具有不同数量元素的类似列表中进行选择 再举个例子 这对于用户来说也是一个完全有效的选择 25 empty 4 1
  • 纯虚函数可能没有内联定义。为什么?

    纯虚函数是那些虚函数并且具有纯说明符 0 第 10 4 条第 2 款C 03 的内容告诉我们什么是抽象类 顺便说一句 如下 注意 函数声明不能 同时提供纯说明符和定义 尾注 示例 struct C virtual void f 0 ill
  • 在 C++ 和 Windows 中使用 XmlRpc

    我需要在 Windows 平台上使用 C 中的 XmlRpc 尽管我的朋友向我保证 XmlRpc 是一种 广泛可用的标准技术 但可用的库并不多 事实上 我只找到一个库可以在 Windows 上执行此操作 另外一个库声称 您必须做很多工作才能
  • 启动画面后主窗口出现在其他窗口后面

    我有一个带有启动屏幕的 Windows 窗体应用程序 当我运行该应用程序时 启动屏幕显示正常 消失并加载应用程序的主窗体 但是 当我加载主窗体时 它出现在包含该应用程序的 Windows 资源管理器目录下 这是运行启动画面然后运行主窗体的代

随机推荐

  • HSTS 安全标头中的 max-age 属性是什么?

    HSTS 中 max age 的目的是什么 例如 Strict Transport Security max age 100 如果该值超过 100 会发生什么 有没有设置 max age 的最佳实践 thanks 有语义上不同的方式来发送
  • MPI:广播 long long int

    这个程序估计Pi通过将随机 飞镖 采样点 扔到一个圆或半径 1内切于长度 2的方板内的圆上 利用关系 Area of circle Area of Square Pi 4 我们可以使用表示为的相同关系来估计 Pi Darts Inside
  • 如何动态导入模块并将其名称作为字符串?

    我正在编写一个 Python 应用程序 它将命令作为参数 例如 python myapp py command1 我希望应用程序是可扩展的 也就是说 能够添加实现新命令的新模块 而无需更改主应用程序源 这棵树看起来像 myapp init
  • 如何收集多个 openFile:(NSString *) 事件,然后对它们执行某些操作?

    我正在开发 Cocoa Objective C 实用程序应用程序 并且想要处理多个 瞬时 文件打开 为了处理文件打开部分 我在我的AppDelegate mm file BOOL application NSApplication app
  • Joomla 的自定义模板支持

    Joomla 是相当不错的 CMS 但是有什么方法可以创建 joomla 支持的自定义模板吗 如果我理解您的问题 您想要转换甚至不是 Joomla 模板的现有模板 如果是这种情况 我发现很难做到 当然这取决于模板的来源 我最终采用了 Joo
  • 移动所有 git 分支中的文件夹

    我们有一个有 20 个分支的中央存储库 它们都使用如下布局 gitignore file1 txt file2 txt 现在应该改为 gitignore ProjectFolder file1 txt ProjectFolder file2
  • Carbon 获取指定开始年份和当前年份之间的年份

    如果可能的话 是否可以使用 Carbon 来获取数组中起始年份和当前年份之间的年份 所以今年的数组将是 2014 2015 2016 明年 2017 年将包括 2014 2015 2016 2017 Thanks 解决方案 years ra
  • lapply后从列表返回到data.frame

    我有一个关于 lapply 的非常简单的问题 我正在从 STATA 过渡到 R 我认为有一些非常基本的概念 我没有在 R 中循环 但是我整个下午都在阅读它 但无法找到一个合理的方法来完成这个非常简单的事情 我有三个数据框 df1 df2 和
  • Google Drive API“监视”文件夹中,如何知道添加了哪些文件

    我正在运行一个测试端点 当我将文件放入监视文件夹时 我收到一个带有标头的请求X Goog Resource State update 但我似乎没有获得添加文件的 ID I get X Goog Resource Id我原以为这可能是新文件
  • 如何使 README_FOR_APP 的内容出现在 doc/app/index.html 中

    我想要的内容doc README FOR APP出现在doc app index html 当我做rake doc app 目前 内容为 这是 Rails 应用程序文档的 API 文档 To see README FOR APP 我必须点击
  • 中没有足够的空间。如何添加多行

    我想在选项文本下添加描述该选项的行 默认情况下 mat select 限制字符数并在行末尾添加 我想要有需要的多行选项 斯塔克闪电战演示 https stackblitz com edit angular wj9svw https stac
  • Python-如何检查Redis服务器是否可用

    我正在开发一个用于访问 Redis 服务器的 Python 服务 类 我想知道如何检查Redis服务器是否正在运行 而且如果不知何故我无法连接到它 这是我的代码的一部分 import redis rs redis Redis localho
  • Ruby 项目帮助。无法从数组中获取已保存的实例

    TLDR 我正在开发一个使用 API 创建实例的项目 我希望能够回忆起所有的实例 但不知道如何回忆 我对 Ruby 和一般编程还比较陌生 所以我希望我能很好地解释一切 这是我的代码 class Suggestion attr accesso
  • 使用 AJAX 在 Bootstrap Modal 上调用 PHP 函数

    我使用 PHP 循环在我的页面上回显了用户列表 当我单击每个用户的名称时 会弹出一个 Bootsrap 模态并显示该用户的更多详细信息 链接看起来像这样 a href user UserName a 如您所见 我将用户的 ID 传递给 Bo
  • Ruby on Rails、LinkedIn:模块错误

    有人遇到过这个错误吗 NoMethodError undefined method new for LinkedIn Module 我认为这与omniauth和linkedin有关 这是我的 Gemfile gem omniauth gem
  • 要构建 php MVC,我需要注意哪些命名约定?

    我对 OO PHP 还很陌生 但是我了解它是如何工作的 并准备开始为我正在开发的大型网站构建 MVC 我知道没有必要这么写你必须这样做但还是得有一些正常的习惯 类名 驼峰命名法 下划线 类文件 与类相同 url post get 控件名称
  • Django 更新查询集以更改外键的 ID

    我正在尝试更新一堆对象的 id 以及引用这些对象的相关表 class Test models Model id models IntegerField primary key True class Question models Model
  • JavaScript RegEx 确定电子邮件的域(例如 yahoo.com)

    使用 JavaScript 我想接受输入 第一次验证电子邮件是否有效 我解决了这个问题 2 验证电子邮件地址是否来自 yahoo com 有人知道可以提供域名的正则表达式吗 thxs var myemail email protected
  • 是 .yaml 还是 .yml?

    根据yaml org http www yaml org faq html 官方文件扩展名是 yaml Quote YAML 文件有官方扩展名吗 请尽可能使用 yaml 然而 互联网上对于使用哪个扩展似乎存在分歧 如果你抬头看网上的例子 h
  • 如何在控件实例化后立即发送自定义事件消息?

    创建此自定义控件并在客户端中测试它时 发送 ValueChanged 事件时出现空异常错误 自定义控件来源 using System using System Collections Generic using System Compone