gpt4 book ai didi

asp.net - WinForms和ASP.NET自定义控件的通用代码

转载 作者:行者123 更新时间:2023-12-02 17:12:47 24 4
gpt4 key购买 nike

假设我想开发一个自定义的纯图形控件,以便在 WinForms 和 ASP.NET 中使用。该控件将根据一些属性设置和关联规则来渲染图像。

显然,我可以将 WinForms 版本的代码复制到 ASP.NET 版本,但这意味着如果发现错误或规则发生更改,我有两个版本需要更新。

我可以编写一个核心类,其中包含所需的各种属性和规则,并且 WinForms 和 ASP.NET 控件类将有一个指向该核心类的属性,例如:

public class MyControlCore
{
// all properties and control rules

public void PaintTo(Graphics graphics)
{
// rendering of control
}
}

public class MyWinFormsControl: Control
{
public MyWinFormsControl(Control parent): base(parent)
{
CoreControl = new MyControlCore();
}

public MyControlCore CoreControl { get; private set; }

protected override OnPaint(object sender, PaintEventArgs e)
{
CoreControl.PaintTo(e.Graphics);
}
}

这可以工作,但在属性网格中我会得到一个包含自定义属性的属性CoreControl。有没有办法让属性网格显示 MyControlCore 属性,而不是带有子属性的 CoreControl 属性?

我想我也许可以使用 TypeDescriptionProvider 和相关类来完成此任务,但我不确定如何继续以及它是否会给我我想要的结果。我意识到这只会对我的设计师有所帮助,但没关系。

最佳答案

还有另一种选择。您可以使用 partial classes并将通用代码放在一个文件中,您可以从两个项目链接到该文件。

关于asp.net - WinForms和ASP.NET自定义控件的通用代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14670843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com