问题标签 [visual-inheritance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
80 浏览

forms - 数据库组件或新组件的视觉继承?

我有 3 个不同的 DataModule:ADOModule、SDACModule、AstaModule。所有都是相同的,除了它们使用的 DB 组件:ADO、SDAC、Asta。

所有这些 DataModule 都做同样的工作,但通过不同的组件。我的意思是 - 所有内部选择和执行都是相同的。

我搜索的是:一种将所有这些 DataModule 组合到一个 BaseDataModule 并强制 ADOModule、SDACModule 和 AstaModule 中的每一个从 BaseDataModule 继承的方法。

好吧,我发现继承方法和属性很容易,但我从来没有习惯从组件继承。有什么好的方法吗?项目目标:尽量减少编码和复制粘贴。

0 投票
0 回答
368 浏览

c# - 使用基 BindingSource 作为派生的 Form 数据源

我有一个Form具有公共BindingSource属性的基地,名为“BaseSource”。其DataSource属性设置为业务对象类型。

我认为如果我从中创建了一个派生表单,在设计器中我将可以访问“BaseSource”,并且它允许我将派生表单的控件绑定到我的业务对象的属性。

是否有什么特别的事情我必须做才能让设计人员看到“BaseSource”实例,就像BindingSource拖入设计人员组件托盘的任何其他对象一样?

更新:

我尝试了下面评论中提到的想法(感谢您的反馈),但不幸的是我无法让它发挥作用。我使用和两个项目,一个包含基本表单和业务对象类,另一个包含派生表单。基本表单公开了一个名为BaseBindingSource类型的受保护属性BindingSource。在基本表单的构造函数中,我将该基本绑定源的DataSource属性设置为List<BusinessObject>. 项目编译没有问题,但在派生表单的设计器中,我仍然无法将BaseBindingSource作为可用数据源。

将这处房产公之于众也无济于事。

0 投票
1 回答
119 浏览

c# - 将基本 UserControl 的修饰符设置为受保护时,Visual Studio 崩溃

我有一个用户控件类BaseUserControl和一个DerivedUserControl派生自BaseUserControl. 在重建解决方案后,两者都在 Visual Studio 设计器中正确显示。

BaseUserControl我有一个protected标签和其他protected控件。我想为派生控件隐藏这个标签。因此,我在用户代码文件以及设计器代码文件中搜索了它的名称,DerivedUserControl以确保它不被使用,DerivedUserControl并且没有发现任何事件。BaseUserControl然后我在from protectedto的设计器中设置了这个标签的修饰符来private隐藏它。我没有更改任何其他控件,也没有代码文件。

然后我再次重建解决方案,并希望向DerivedUserControl. 但是现在 Visual Studio 崩溃了。

因此,我尝试通过将标签修饰符手动重置protectedBaseUserControl. 但是,尽管重新构建了 Visual Studio,但如果我打开DerivedUserControl.

我有 Microsoft Visual Studio Ultimate 2012 版本 11.0.61030.00 更新 4 和 Microsoft .NET Framework 版本 4.5.50938。

有没有人有解决这个问题的想法?

0 投票
0 回答
45 浏览

c# - WinForms MDI 继承窗体在父窗体中具有不同的属性值?

我正在对旧版 winforms 应用程序进行一些维护。该项目使用表单继承,这使我的工作变得更加轻松,但是有一个奇怪的问题。设置如下:
FormBase : Form
FormBaseList : FormBase
FormClientList : FormBaseList

我现在遇到的问题是属性 WindowsState。
我创建了一个新的 FormClientList。

比我单击最大化按钮使其最大化。
现在我在 FormClientList 上有一个按钮(用于调试目的),向我显示属性 WindowState 的值,它返回最大化,正如我所料。

在 FormBaseList 中有一些代码需要知道这个属性的值,但在这里它总是返回正常,而不是最大化。该代码位于 datagridview 的双击上,它将创建另一个表单。

所以看起来这个表单的实例对于这个属性有不同的值,这取决于我从哪个类运行我的测试代码?

我该如何解决 ?

0 投票
1 回答
691 浏览

c# - 无法在继承的 winform 上将项目添加到 ContextMenuStrip

我的设置非常简单。
我有一个名为 FormBaseList 的表单,在该表单上有一个 DataGridView 和一个 ContextMenuStrip。ContextMenuStrip 与 DataGridView 耦合,并具有 2 个菜单项。

现在,我使用添加 Windows 窗体向我的项目添加一个新窗体,然后选择“Windows 窗体”/“继承的窗体”。作为基础,我选择我的 FormBaseList。

所以现在我有了一个新的表单,叫做 FormSomethingList,它是从 FormBaseList 派生的。
在可视化设计器中,我现在可以在 FormSomethingList 上的 ContextMenuStrip 中添加一个额外的 MenuItem,但是如果我编译并运行应用程序,那么新的 MenuItem 就消失了。当我在设计器中打开 FormSomeThingList 时,新的 MenuItem 也消失了......

这是“正常”行为还是我的项目有问题?我怀疑第一个,但想要一些确认。如果这确实是“正常”行为,我该如何解决它而不用代码做所有事情。

0 投票
0 回答
184 浏览

delphi - 在祖先表单删除控件后如何自动更新许多后代表单?

假设 aTAncestorForm带有一个额外的按钮(或任何其他控件)。TAncestorForm如果我删除该按钮,每当我打开Delphi IDE的后代时,都会显示一条消息“未找到祖先组件...”并让我选择:

  • 删除引用;
  • 告诉组件已重命名,它的新名称是什么;
  • 重新创建组件;

我想要第一个选项。还有其他选项可以自动执行此操作,而不是打开所有后代(如几十个)并单击每条消息?

0 投票
1 回答
699 浏览

c# - C# 子窗体从父窗体继承控件

我的应用程序的组织方式是我有一个基本表单和多个继承自它的子表单。我还有一个定义为 UI 控件的按钮。我想将 UI 控件添加到基本表单,以便所有子表单也可以拥有该控件。但是,我不想弄乱所有单独的子窗体,因为所有子窗体的控件都应该相同。到目前为止我所做的:将控件添加到 baseFrom.cs 的设计器中,然后在列出控件所有属性的基本表单中创建了 InitializeComponent() 函数。我已经尝试在基本表单的构造函数中调用 InitializeComponent ,但这仍然不会使控件出现在任何子表单中。我在这里想念什么?

0 投票
1 回答
1734 浏览

winforms - 在 Visual Studio 中禁用所有控件的属性

我有一个父表单和一个继承自前者的子表单。在设计模式下,所有继承控件的属性都被禁用。如何在子窗体中更改这些属性?

这是设计师的截图。请注意我是如何选择一个文本框的,并且它的所有属性都被禁用(灰显)。截屏

0 投票
1 回答
228 浏览

delphi - 如何在高 dpi 值下获得视觉继承?

我有以下TForm1带有两个按钮(BitBtn)的示例表单:

基本形式

此外,我还有第二种形式TForm2,它是从第一种形式派生的。第二个按钮向左移动并添加了另一个按钮:

派生形式

在运行时(Windows 7),第二种形式如下所示:

标准字体大小

如果我将字体缩放比例更改为 125%,我的表单如下所示:

增加字体大小

不知何故,新按钮的位置和大小都错误。 我能做些什么呢?

我使用了以下.dfm文件(缩短):

类文件在设计器生成时保持不变。它们不包含相关代码。

0 投票
1 回答
578 浏览

forms - 如何以可继承的形式更改 ToolButtons 的顺序?

我有两种形式。第一个有一个 TToolBar 和两个 TToolButton。第二个继承了第一个,并且多了三个 TToolButton。我在设计时更改了按钮的顺序,将第二种形式的三个按钮放在第一种形式的按钮之前。当应用程序运行时,第二个表单的按钮出现在第一个表单的按钮之后。

有没有办法在设计时使用顺序集?