【问题标题】:Inheriting a Base Form but Paste/Cut Commands Not Captured继承基本表单但未捕获粘贴/剪切命令
【发布时间】:2010-06-10 01:28:59
【问题描述】:

我创建了一个具有特定大小和图标的基本表单,作为我项目中创建的所有表单的基础(以保持外观一致)。问题是,由于某种原因,如果我在子窗体中添加一个文本框,我不能再在文本框中执行复制 (CTRL+C) 等快捷方式。

除了编写代码来捕获 KeyUp 控件上的代码之外,我应该怎么做才能处理这个问题?

RichTextBox 控件也是如此。

谢谢

【问题讨论】:

  • 我创建了另一个项目来尝试重新生成此问题,但未能成功。这似乎是控件中的错误。我将不得不从头开始重新创建所有内容,看看我是否遇到了同样的问题。感谢所有尝试解决此问题的人,但除了我当前的项目之外,它似乎没有发生在任何地方。
  • 好吧,我终于想通了! CTRL+C(和其余的)没有执行它们各自的命令的原因是因为我用 MDI 父窗体启动了项目。 MDI 父窗体自动填充几个控件,其中像粘贴这样的菜单项位于“编辑”菜单项下。粘贴与快捷键 CTRL+V 相关联(同样由 MDI 父表单模板自动)。问题是菜单项的 Click 事件没有得到处理,因此每次我尝试在 RichTextBox 或 TextBox(或几乎任何可编辑的表单)中单击 CTRL+V 时,它什么也没做。哎呀!

标签: c# vb.net inheritance richtextbox


【解决方案1】:

我无法复制您的问题。但我建议最好避免继承,详情请查看Microsoft Application Architecture Guide, 2nd Edition

更喜欢组合而不是继承。 尽可能使用组合 重用时过度继承 功能,因为继承 增加了之间的依赖 父类和子类,从而 限制子类的重用。 这也减少了继承 层次结构,这可以变得非常 很难对付。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多