视觉工作室最受喜爱和讨厌的人之一必须是表单设计师。
创建简单的表单/用户控件布局通常是轻而易举的。设置属性和添加事件很简单。
设置工具箱以使用您自己的控件可能会有点困难,让ToolBoxIcons显示可能会很痛苦。通过可视继承使用第三方组件可以抛出设计者。在设计上使用多重继承可能非常困难。
那么您最喜欢的“隐藏”和/或明显的视觉工作室设计师功能。
答案 0 :(得分:23)
CTRL
并拖动控件以复制它。注意:如果您的控件有,请小心 由...创建的事件处理程序 设计师,它会关联你的 新创建的控件与事件 处理程序以及旧控件。
使用键盘快捷键F7从设计器视图转到代码视图,使用Shift-F7从代码视图转到设计器视图。我经常使用这个
“文档大纲”窗口对于重型设计人员使用至关重要。这允许您重新排序轮廓中的控件以将它们放在前面或发送回来。当您使用对接控件时,它尤其有用。您还可以将子控件移动到另一个父控件,或将其从容器控件中取出,或将父控件移动到容器中等...
View -> Other Windows -> Document Outline
View -> Toolbars -> Layout
答案 1 :(得分:8)
当WinForms项目设计器在窗体或用户控件上打开并且您具有嵌套的子控件时,可以通过按Esc键将焦点从当前聚焦的子控件移动到其父控件。再次按Esc键可将焦点移至其父级,依此类推,直至最终到达顶部。
答案 2 :(得分:4)
我尝试在表单初始化时编写自己的事件处理程序方法,而不是让设计人员处理它。我注意到设计师会不时丢失这些事件。通过自己编码,确保他们坚持下去。
myButton.Click += new System.EventHandler(this.myButtonClick)
答案 3 :(得分:4)
您可以将自己的对齐线添加到UserControls。
下面的类名为CenterSquare
,并添加了一个名为CenterSquareSnapLines
的Designer,它提供控件内的快照线列表。如果你有自己的控件渲染得更小,只有它们的边框,你现在可以添加自己的对齐线。
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
}
答案 4 :(得分:4)
您是否知道可以实际调试设计器?
您可以启动一个解决方案两次并使用“附加到进程”来调试运行设计器控件的devenv环境。这对于调试“奇怪的”设计器问题尤其有用,否则这些问题几乎不会提供任何信息。
我用这个来确定一个设计师的问题,这个问题已经开始,并且无法触发未处理的异常并打破设计师。我在desigerview看到的只是一些视觉工作室内部帮助程序类崩溃。
答案 5 :(得分:2)
设计器将显示用户控件上的所有属性,并填充数据类型的默认值。 使用Hidden作为值添加DesignerSerializationVisibility属性不会使用任何默认值填充此属性。
<DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)>
这是将设计师代码的数量保持在最低限度的好方法。另一个选项是DefaultValue。
<DefaultValue(somevalue)>
这将设置设计者使用给定值作为选择的默认值。
如果您不使用这些属性,设计人员将覆盖后备字段值和初始化值。
另一个很难找到的: 菜单 - 查看 - 标签顺序
您可以点击字段来更改标签顺序。此选项仅在设计器处于活动状态时可见。
答案 6 :(得分:1)
破碎的设计师:
有时,visual studio不会显示切换到Designer / Code选项。我没有找到导致这种情况的原因,但在使用devexpress时混合使用vb.net和c#项目似乎是一个原因。
只要visual studio运行,它就不会突然看到我的表单/用户控件可以设计。关闭视觉工作室并更改项目文件通常会有所帮助。
最初项目文件包含
<Compile Include="cboTargetGroupFlights.cs">
将其更改为并重新打开项目会导致visual studio重新检查所有表单/用户控件,并再次向设计人员显示。
<Compile Include="cboTargetGroupFlights.cs">
<SubType>Component</SubType>
</Compile>
您是否知道在解决方案视图中双击某些内容后,您可以将代码视图设置为默认值。右键单击您的文件,然后选择打开方式...并使用设置为默认值按钮。