如何在 C# 中重写 WinForm UserControl 中的方法和事件?

2023-12-25

我在 C# WinForms 中有一个名为的自定义控件BaseControl我在那里有一个叫做Selected.

我想要举办一个活动SelectedChanged和虚方法OnSelecteChanged在基本控件中,它们的行为方式应该与我们在Control许多属性的类,即Click事件和OnClick method.

指任何源自我的人BaseControl可以绑定到事件或可以覆盖OnSelectedChanged method.

所以,当值Selected属性更改事件应该被触发,如果该方法被重写,控件应该转到该方法。

我知道如何触发事件,但不知道如何执行方法。

请指导我...


以下是如何实施事件的示例:

public class BaseControl : Control
{
    private object _selected;

    public object Selected
    {
        get { return _selected; }
        set
        {
            if (!Equals(_selected, value))
            {
                _selected = value;
                OnSelectedChanged(EventArgs.Empty);
            }
        }
    }

    public event EventHandler SelectedChanged;

    protected virtual void OnSelectedChanged(EventArgs e)
    {
        if (SelectedChanged != null)
            SelectedChanged(this, e);
    }
}

通过此示例,您可以覆盖OnSelectedChanged在重写的类中,如下所示:

public class MyControl : BaseControl
{
    protected override void OnSelectedChanged(EventArgs e)
    {
        base.OnSelectedChanged(e);

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

如何在 C# 中重写 WinForm UserControl 中的方法和事件? 的相关文章

随机推荐

  • Bison/Yacc 语法中的无意串联

    我正在尝试 lex 和 yacc 并遇到了一个奇怪的问题 但我认为最好在详细说明问题之前向您展示我的代码 这是我的词法分析器 include
  • 如何有效地将阵列旋转±180°?

    对于 C 语言和衍生物 Python Cython 纯 C 使用最少的内存和操作将非方形 M N 数组绕其中心旋转 180 的最佳算法是什么 假设out是一个初始化的副本array M and N它们的行数和列数 我们使用从 0 到 M 1
  • Javascript 从 toLocaleDateString 解析日期以获取已知区域设置

    背景 在我的应用程序中 我想根据用户的区域设置设置日期格式 如果用户修改日期 我希望能够将其解析回 javascript Date 对象 Problem 我想知道是否可以使用 javascript 从本地格式化的字符串中解析日期 请考虑以下
  • PST 到 CSV 文件转换

    有谁知道通过命令行将 pst 转换为 csv 文件的好工具 您可以假设计算机上安装了 Outlook 吗 如果是这样 我相信它可以使用 OLE 或类似的东西进行后台脚本编写 我已经使用 Ruby 通过 Excel 完成了文件转换 这是一个P
  • 有没有办法将 SharedPreferences 存储到 SD 卡上?

    我编写了一个具有多个硬编码设置 例如 fontSize 或 targetDirectory 的应用程序 我希望能够偶尔更改这些类型的设置 SharedPreferences 似乎是解决此问题的一种方法 但我想共享此应用程序和设置 并且我的手
  • 使用参数从终端运行 Jython 脚本

    我想从命令行调用 Jython 脚本 例如 Applications Fiji app Contents MacOS ImageJ macosx headless little jython script py 我了解 Python 以及
  • GtkTreeView 由于排序而导致插入/更新性能损失

    在将许多行插入 GTK 树视图 使用 PyGTK 或修改许多行时 我遇到了性能问题 问题是模型似乎在每次更改 插入 修改 后都会被重新使用 这会导致 GUI 挂起数秒 通过注释使模型不排序model set sort column id S
  • 从 CLLocation 数组创建 GPX 文件

    我的应用程序需要使用应用程序在设备内共享 CLLocations 路由 数组 在此之前我没有使用 GPX 的经验 GPX 是最好的格式吗 如何从给定的此类 CLLocations 数组创建 GPX 文件 Objective C 中有标准的
  • 生成的 PDF 中自动换行(使用 jsPDF)?

    我正在做的是使用 jsPDF 创建我生成的图表的 PDF 但是 我不确定如何包装标题 通过使用 text 函数添加 标题的长度因图表而异 目前 我的标题已经从页面上消失了 任何帮助 将不胜感激 这是我到目前为止的代码 var doc new
  • 从 Lambda 中的 S3 通知事件获取非 ASCII 文件名

    The keyAWS S3 通知事件中表示文件名的字段已进行 URL 转义 当文件名包含空格或非 ASCII 字符时 这一点很明显 例如 我已将以下文件名上传到 S3 my file txt 收到的通知如下 Records s3 objec
  • 使用volley时如何保持进度条状态?

    当我将 AysncTask 与片段回调一起使用时 维护进度条状态很容易 但我应该如何用 volley 实现它 我不能使用 AsyncTask 因为它已经过时了 而且 volley 更好更快 任何帮助或提示将不胜感激 我正在使用谷歌的齐射来发
  • 使用空格而不是制表符进行缩进的性能影响

    我目前使用软制表符 即空格 来缩进 Ruby 代码 如果我使用硬制表符 在解释代码时会提高性能吗 我认为读取 1 个制表符比解析 4 个空格字符 尽管可以忽略不计 要快 您是否了解源代码解释所涉及的所有阶段 只有第一个 词法分析 必须处理空
  • spring data elasticsearch继承查询没有结果

    我在继承和 ElasticsearchRepository 方面遇到一些麻烦 我的代码 简短版本 实体 public abstract class father Id protected String identifier construc
  • Highchart / Highstock 如何设置单个 ohlc 或蜡烛的颜色?

    I have set up a highstock ohlc https www highcharts com stock demo ohlc with angular 2 But can not set the up and down c
  • 使用 wkhtmltopdf 或任何其他免费工具的 C# html 到 pdf 转换器 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在 C 中将 html 转换为 pdf 的完美工具是什么 我通过 stackoverflow com 找到了 wkhtmltopdf 但它
  • 更改亮度滤镜

    我尝试使用 jQuery 更改页面上某些图像的亮度过滤器 css 属性 但在控制台中收到以下错误 解析 过滤器 值时出错 声明被删除 这是我正在使用的代码 function changeBrightness myImg css filter
  • 从 Pandas Dataframe 写入格式化的二进制文件

    我已经看到了一些将 Python 中的格式化二进制文件读取到 Pandas 的方法 也就是说 我使用的代码使用 NumPy fromfile 进行读取 该文件使用 dtype 给定的结构进行格式化 import numpy as np im
  • 根据向量提供的变量名称和权重创建平均变量

    假设我想在给定的数据框中基于两个向量创建一个均值变量 一个指定要使用的变量的名称 另一个指定这些变量应进入均值变量的权重 vars lt c a b c d weights lt c 0 5 0 7 0 8 0 2 df lt data f
  • 理解 RXJS 可观察输出的问题

    我对 rxjs 相当陌生 正在尝试学习 我正在读这篇媒体文章 https medium com javascript in plain english reactive programming in javascript 8373201a6
  • 如何在 C# 中重写 WinForm UserControl 中的方法和事件?

    我在 C WinForms 中有一个名为的自定义控件BaseControl我在那里有一个叫做Selected 我想要举办一个活动SelectedChanged和虚方法OnSelecteChanged在基本控件中 它们的行为方式应该与我们在C