Cod*_*eld 19 windows-forms-designer visual-studio winforms
视觉工作室最受喜爱和讨厌的人之一必须是表单设计师.
创建简单的表单/用户控件布局通常是轻而易举的.设置属性和添加事件很容易.
设置工具箱以使用您自己的控件可能会有点困难,让ToolBoxIcons显示可能会很痛苦.通过可视继承使用第三方组件可以抛出设计者.在设计上使用多重继承可能非常困难.
那么你最喜欢的"隐藏"和/或明显的视觉工作室设计师功能是什么.
小智 24
CTRL
并拖动控件以复制它.注意:请注意,如果您的控件具有由设计器创建的事件处理程序,它会将您新创建的控件与事件处理程序以及旧控件相关联.
使用键盘快捷键F7从设计器视图转到代码视图,使用Shift-F7从代码视图转到设计器视图.我经常使用它
"文档大纲"窗口对于重型设计人员使用至关重要.这允许您重新排序轮廓中的控件以将它们放在前面或发送回来.当您使用对接控件时,它尤其有用.您还可以将子控件移动到另一个父控件,或将其从容器控件中取出,或将父控件移动到容器中等...
View -> Other Windows -> Document Outline
View -> Toolbars -> Layout
当WinForms项目设计器在窗体或用户控件上打开并且您具有嵌套的子控件时,可以通过按Esc键将焦点从当前聚焦的子控件移动到其父控件.再次按Esc键可将焦点移至其父级,依此类推,直至最终到达顶部.
您可以将自己的对齐线添加到UserControls。
下面的类称为CenterSquare
,并添加了一个Designer,它CenterSquareSnapLines
提供了控件内的对齐线列表。如果您拥有自己的控件,这些控件会变得更小,那么仅是它们的边框即可,您现在可以添加自己的对齐线。
public class CenterSquareSnapLines : ControlDesigner
{
public override System.Collections.IList SnapLines
{
get
{
ArrayList snapLines = base.SnapLines as ArrayList;
CenterSquare c = this.Control as CenterSquare;
if (c != null)
{
snapLines.Add(new SnapLine(SnapLineType.Left, c.BorderDistance));
snapLines.Add(new SnapLine(SnapLineType.Right, c.Height - c.BorderDistance));
snapLines.Add(new SnapLine(SnapLineType.Top, c.BorderDistance));
snapLines.Add(new SnapLine(SnapLineType.Bottom, c.Width - c.BorderDistance));
snapLines.Add(new SnapLine(SnapLineType.Top, 5));
}
else
{
//Debug message here!
}
return snapLines;
}
}
}
[Designer(typeof(CenterSquareSnapLines))]
public partial class CenterSquare : UserControl
{
//implementation goes here
}
Run Code Online (Sandbox Code Playgroud)
您知道您可以实际调试设计器吗?
您可以启动一个解决方案两次,然后使用“附加处理”来调试运行设计器控件的devenv环境。这对于调试“奇怪的”设计器问题特别有用,否则它会给我们很少的信息。
我用它来确定设计师的问题,以解决一些远程启动的问题,但这种工作无法触发未处理的异常并破坏设计师。我在desigerview上看到的只是一些Visual Studio内部帮助程序类崩溃了。
归档时间: |
|
查看次数: |
8343 次 |
最近记录: |