很长一段时间以来,我一直坚持使用Windows Forms开发(从VB6开始,一直到C#.NET 4.5),而且我已经达到了Windows Forms可以做的极限,两者都使用纯.NET和本机代码的特殊效果.
我知道WPF是未来(目前),Windows Forms正在放慢成为一种被弃用的技术.
我曾经尝试过学习WPF和XAML,但是我遇到了WPF的新设计师......与Windows Forms设计师相比,它似乎很难使用...当然......这只是一个学习曲线,在某些时候,我打算继续学习WPF.
与此同时,我想知道.NET的WPF设计器是否有更适合Windows Forms开发人员的替代方案?
我在Windows窗体中遇到了继承控件的问题,需要一些建议.
我确实为List中的项目(由面板构成的自制GUI列表)和一些可以添加到列表中的每种数据类型的继承控件使用基类.
它没有问题,但我现在发现,将基本控件变成抽象类是正确的,因为它有方法,需要在所有继承的控件中实现,从内部的代码调用base-control,但不能也不能在基类中实现.
当我将基本控件标记为抽象时,Visual Studio 2008 Designer拒绝加载窗口.
有没有办法让Designer使用基础控件制作抽象?
有没有人遇到过在Visual Studio .NET中尝试在Windows窗体上"查看设计器"导致错误的问题:"无法加载文件或程序集......"?
在这种情况下,有问题的组件是XYZ.dll.我设法通过添加XYZ.dll及其对项目引用的所有引用来解决这个问题(即使我的项目不直接依赖于它们)并重建整个解决方案.然而,在那之后,我从我的项目中删除了所有这些引用,重建,它仍然有效.
另一条信息是我使用Resharper 2.5.其他人指出,可能是Resharper做了一些影子复制.我下次会发生这种情况.有没有人首先理解为什么会发生这种错误,并且可能是"正确"的解决方法?
我有一个与标题错误有关的问题.我正在使用c#和Visual Studio 2010.
我有一个声明为"公共类FormularioGeneral:Form"的表单,它是我的应用程序中其余表单的基础.当我尝试访问Designer视图时,我会多次出现此错误,如图所示:
所有错误都引用InitializeComponent方法中的行,其中值被赋予像这样的属性:
[...]
this.PanelMargenIzquierdoCapaBase.BackColor = m_ColorCapaBase;
[...]
Run Code Online (Sandbox Code Playgroud)
但是所有变量都在与只读属性相同的类中声明,并且所有变量都在构造函数中调用的方法内分配.
财产声明:
protected Color m_VariableName;
public Color VariableName
{
get { return m_VariableName; }
set { }
}
Run Code Online (Sandbox Code Playgroud)
构造函数代码:
public FormularioGeneral()
{
ConfigurarUI();
AccionesConstructor();
InitializeComponent();
PostInicializacionComponentes();
EstablecerIcono();
InicializarLocalizacionFormulario();
}
Run Code Online (Sandbox Code Playgroud)
ConfigurarUI方法:
public virtual void ConfigurarUI()
{
[...]
m_AltoBordeSuperiorCapaBase = 30;
m_AltoBordeInferiorCapaBase = 7;
m_AnchoBordesLateralesCapaBase = 7;
m_ColorCapaBase = Color.FromArgb(50, 100, 150);
m_ColorTextoCapaBase = Color.White;
m_ColorTextoBotonAplicacion = Color.Black;
m_FuenteTextoIzquierdoCapaBase = new System.Drawing.Font("Verdana", 11.0F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
m_FuenteTextoCentroCapaBase = new System.Drawing.Font("Verdana", 14.0F, System.Drawing.FontStyle.Bold, …Run Code Online (Sandbox Code Playgroud) 我有一个自定义用户控件,上面有一个文本框,我想在自定义控件之外公开基线(文本框中的文本)snapline.我知道您创建了一个设计器(继承自ControlDesigner)并覆盖SnapLines以访问snapline,但我想知道如何获取我自定义用户控件公开的控件的文本基线.
.net user-controls design-time windows-forms-designer winforms
我刚开始在名为visual studio 2017 RC的新版Visual Studio中编写报告软件,但只是注意到Windows窗体和WPF应用程序模板都缺少核心报告查看工具.任何人都可以告诉我为什么reportviewer工具从视觉工作室2017消失了?没有它真的遇到麻烦.在新的Visual Studio中有没有可以使用此工具的替代方案?
我正在使用Visual C#Express编写Windows Form应用程序,并称我为旧学校,但我不喜欢这位设计师.这是一个麻烦,并污染我的项目与许多不需要的文件,以及不需要的猴子生成的源代码.
请告诉我有一种方法可以完全关闭它.
尝试在Visual Studio 2010中设计表单时:

我如何告诉Visual Studio忽略导致问题的原因并继续?
研究问题显示了两种可能的解决方案
在我的情况下,重新启动Visual Studio会使它从它自己的汇编程序中脱颖而出.
有人以答案的形式说出那些,并得到自由的代表.(因此阻止我发布自己的答案).
我正在使用Visual Studio 2013表单设计器来编辑表单.设计器窗口中窗体的大小太大,所以我想缩小.

在像Photoshop或Blend这样的应用程序中,我可以(除其他外)使用键盘快捷键Ctrl-0使设计适合屏幕.
在Visual Studio中,如何在窗体设计窗口中缩小?
我有一个Visual Studio 2010 Windows窗体应用程序,其中包含其他类将继承的Form基类.基类的构造函数接受子类将传递给基类的参数.
例:
public partial class BaseForm : Form
{
public BaseForm(int number)
{
InitializeComponent();
}
}
public partial class ChildForm : BaseForm
{
public ChildForm(int number)
: base(number)
{
InitializeComponent();
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,当我尝试在VisualStudio的设计视图模式下打开ChildForm时,我收到以下错误:
找不到类型"MyProject.BaseForm"的构造函数.
注意:无论错误如何,项目编译并运行正常.
如果我用不包含任何参数的构造函数重载构造函数,我可以避免错误.
示例:(这消除了错误)
public partial class BaseForm : Form
{
public BaseForm(int number)
{
InitializeComponent();
}
public BaseForm()
{
InitializeComponent();
}
}
public partial class ChildForm : BaseForm
{
public ChildForm(int number)
: base(number)
{
InitializeComponent();
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何创建一个不包含无参数构造函数的基类并避免设计视图错误?
c# inheritance base-class visual-studio-2010 windows-forms-designer