请问怎样使用Dock,Anchor属性?

lsqlxq 2003-10-21 11:55:48
搜索过以前的帖子,很多帅哥都表示要想设计能自适应不同分辨率窗口的WinForm要Dock,Anchor两个属性配合使用,可我发现一旦设置了Dock属性后,Anchor属性也相应的改了,比如设置Dock为Left后Anchor自动变为Top、Left。这样不能叫配合吧,请问这怎么理解?
如您对这两个属性有相当的理解,请帮我实现一个这样的最直接的效果:一个小窗体(不是最大化的),上面放100个文本框,共10行,每行10个,这100个文本框充满了整个窗体而均匀分布在窗体上。设置它们的属性后,运行程序,用鼠标拉窗体改变窗体大小,这100个文本框中每个都要相应的改变位置而改变大小,按比例扩大,保证还是“充满整个窗体而均匀分布在窗体上”。
谢谢!
...全文
298 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ETstudio 2003-10-21
  • 打赏
  • 举报
回复
我是用另一种方法做的,用上面的属性是不可以实现的,因为Dock是单方向的,只能是一列或一行,不可以多行多列
ETstudio 2003-10-21
  • 打赏
  • 举报
回复
给我你的email,我做一个给你!
lsqlxq 2003-10-21
  • 打赏
  • 举报
回复
请问 zzzsssccc(籍秋风) 您写的这两段代码是干啥的?
三杯倒 2003-10-21
  • 打赏
  • 举报
回复
// Add a button to a form and set some of its common properties.
private void AddMyButton()
{
// Create a button and add it to the form.
Button button1 = new Button();

// Anchor the button to the bottom right corner of the form
button1.Anchor = (AnchorStyles.Bottom | AnchorStyles.Right);

// Assign a background image.
button1.BackgroundImage = imageList1.Images[0];

// Make the button the same size as the image.
button1.Size = button1.BackgroundImage.Size;

// Set the button's TabIndex and TabStop properties.
button1.TabIndex = 1;
button1.TabStop = true;

// Add a delegate to handle the Click event.
button1.Click += new System.EventHandler(this.button1_Click);

// Add the button to the form.
this.Controls.Add(button1);
}
三杯倒 2003-10-21
  • 打赏
  • 举报
回复
// Add a GroupBox to a form and set some of its common properties.
private void AddMyGroupBox()
{
// Create a GroupBox and add a TextBox to it.
GroupBox groupBox1 = new GroupBox();
TextBox textBox1 = new TextBox();
textBox1.Location = new Point(15, 15);
groupBox1.Controls.Add(textBox1);

// Set the Text and Dock properties of the GroupBox.
groupBox1.Text = "MyGroupBox";
groupBox1.Dock = DockStyle.Top;

// Disable the GroupBox (which disables all its child controls)
groupBox1.Enabled = false;

// Add the Groupbox to the form.
this.Controls.Add(groupBox1);
}
lsqlxq 2003-10-21
  • 打赏
  • 举报
回复
TO:ETstudio(外星人)
我已经发邮件给你了:)
谢谢
ETstudio 2003-10-21
  • 打赏
  • 举报
回复
要的话就发信给我吧:et@fabrefactum.com
第1章 可调节类控件 1.1 Datetimepicker控件 1.1.1 CalendarFont属性 1.1.2 CalendarForeColor属性 1.1.3 CalendarMonthBackground属性 1.1.4 CalendarTitleBackColor属性 1.1.5 CalendarTitleForeColor属性 1.1.6 CalendarTrailingForeColor属性 1.1.7 CustomFormat属性 1.1.8 Location属性 1.1.9 Region属性 1.1.10 ShowUpDown属性 1.1.11 ShowCheckBox属性 1.1.12 Size属性 1.1.13 Value属性 1.1.14另外2种显示时间和日期的方法 1.2 MonthCalendar控件 1.2.1属性说明 1.2.2应用举例 1.3 NumericUpDown控件 1.3.1 Anchor属性 1.3.2 AutoSize属性 1.3.3 CausesValidation属性 1.3.4 其他常用属性 第2章 选择类控件 2.1 RadioButton控件 2.1.1 AllowDrop属性 2.1.2 Anchor属性 2.1.3 AutoEllipsis属性 2.1.4 设置控件背景的属性 2.1.5 FlatStyle和FlatAppearance属性 2.1.6 Image类属性 2.1.7 UseWaitCursor属性 2.1.8 UseVisualStyleBackColor属性 2.1.9 ContextMenuStrip属性 2.1.10 TextlmageRelation属性 2.2 CheckBox控件 2.3 CheckedListBox控件 2.3.1 CausesValidation属性 2.3.2 CheckOnClick属性 2.3.3 ColumnWidth属性 2.3.4 Cursor属性 2.3.5 Dock属性 2.3.6 FormatStrin9和FormattingEnabled属性 2.3.7 HorizontalScroUBar和HorizontalExtent属性 2.3.8 ImeMode属性 2.3.9 IntegralHeight属性 2.3.10 Items属性 2.3.11 MaximumSize和MinimumSize属性 2.3.12 MultiColumn属性 2.3.13 RightToLefl属性 2.3.14 ScrollAlwaysVisible属性 2.3.15 SelectionMode属性 2.3.16 Sorted属性 2.3.17 ThreeDCheckBoxes属性 2.3.18 UseCustomTabOffsets属性 第3章 显示类控件 3.1 TextBox控件 3.1.1 AcceptsRetum属性 3.1.2 AcceptsTab属性 3.1.3 AutoCompleteCustomSource属性 3.1.4 AutoCompleteMode属性 3.1.5 AutoCompleteSource属性 3.1.6 CharacterCasin9属性 3.1.7 HideSelection属性 3.1.8 Lines和Multiline属性 3.1.9 MaxLength属性 3.1.10 PasswordChar属性 3.1.11 ScrollBars属性 3.1.12 UseSystemPasswordChar属性 3.1.13 WordWrap属性 3.2 RichTextBox控件 3.2.1 Lines属性 3.2.2 ScrollBars属性 3.2.3 AutoWordSelection属性 3.2.4 Bulletlndent属性 3.2.5 SelectionFont属性 3.2.6 DetectUrls属性 3.2.7 EnableAutoDragDrop属性 3.2.8 ShortCutsEnabled属性 3.2.9 ShowSelectionMargin属性 3.2.10 ZoomFactor属性 3.3 LinkLabel控件 …… 第4章 组合类控件 第5章 容器类控件 第6章 菜单和工具栏类控件 第7章 数据控件 第8章 .NET环境下组合类控件 第9章 打印类控件 第10章 对话框类控件 第11章 水晶报表控件 第12章 多媒体播放控件 第13章 自定义控件
FlowLayoutPanel 一些应用程序需要一个布局可随窗体大小的调整或其中内容大小的改变而自动进行适当排列的窗体。在需要动态布局并且不希望在代码中显式处理 Layout 事件时,可考虑使用布局面板。 FlowLayoutPanel是.NET Framework的新增控件。顾名思义,面板可以采用Web窗体的方式给Windows窗体布局。FlowLayoutPanel是一个容器,允许以垂直或水平的方式放置包含的控件。除了放置控件之外,还可以剪辑控件。放置的方向使用FlowDirection属性和FlowDirection枚举来设置。WrapContents属性确定在重新设置窗体的大小时,控件是放在下一行、下一列,还是剪辑控件。 FlowLayoutPanel 按特定的流方向排列其内容:水平或垂直。其内容可从一行换到下一行,或者从一列换到下一列。另一种情况是不换行,而是将其内容截掉。 相信大家在做WinForm项目的时候,要对大量的控件进行排序(位置摆放),这个容器肯定最受欢迎,但很遗憾的是,此容器本身虽支持Dock和Anchor属性,但不支持放入此容器内的控件的Dock和Anchor属性(自动调整宽度),也就说,但窗体伸缩,FlowLayoutPanel容器自身可以缩放,但是里面的控件就没那么幸运了,不支持自动缩放,这样就必须写方法来触发新的事件来调整控件的大小,这样就会导致窗体的闪烁(重绘)。 借助ManagedSpy工具,我们可以看到此容器里面的器件的结构,我们可以在Form1里面添加一个事件SizeChanged 对容器里面每个器件重新给它大小 就行了。 附件:FlowLayoutPanel的Demo
《Visual C# 2008控件使用范例详解》作者拥有10年的编程经验,通过近200个范例的典型应用,帮助读者透彻理解Visual C#2008的控件及其应用。全书共分13章,分别介绍了可调节类控件、选择类控件、显示类控件、组合类控件、容器类控件、菜单和工具栏类控件、数据控件、应用类控件、打印类控件、对话框类控件、水晶报表控件、多媒体播放控件、自定义控件等13类控件。对于每一个控件都从作用、各属性的用法及其对操作结果的影响、相关编程知识等方面进行一一介绍。《Visual C# 2008控件使用范例详解》适合稍有.NET基础的所有Visual C# 2008应用开发人员,是你提高编程水平,高效完成任务的良师益友;针对每个控件应用技术点的详尽阐述,也可供你作为案头的速查手册。 第2章 选择类控件 2.1 RadioButton控件 2.1.1 AllowDrop属性 2.1.2 Anchor属性 2.1.3 AutoEllipsis属性 2.1.4 设置控件背景的属性 2.1.5 FlatStyle和FlatAppearance属性 2.1.6 Image类属性 2.1.7 UseWaitCursor属性 2.1.8 UseVisualStyleBackColor属性 2.1.9 ContextMenuStrip属性 2.1.10 TextlmageRelation属性 2.2 CheckBox控件 2.3 CheckedListBox控件 2.3.1 CausesValidation属性 2.3.2 CheckOnClick属性 2.3.3 ColumnWidth属性 2.3.4 Cursor属性 2.3.5 Dock属性 2.3.6 FormatStrin9和FormattingEnabled属性 2.3.7 HorizontalScroUBar和HorizontalExtent属性 2.3.8 ImeMode属性 2.3.9 IntegralHeight属性 2.3.10 Items属性 2.3.11 MaximumSize和MinimumSize属性 2.3.12 MultiColumn属性 2.3.13 RightToLefl属性 2.3.14 ScrollAlwaysVisible属性 2.3.15 SelectionMode属性 2.3.16 Sorted属性 2.3.17 ThreeDCheckBoxes属性 2.3.18 UseCustomTabOffsets属性
Panel控件的使用 我们对控件进行分组的原因不外乎三个: 1、为了获得清晰的用户界面而将相关的窗体元素进行可视化分组。 2、编程分组,如对单选按钮进行分组。 3、为了在设计时将多个控件作为一个单元来移动。 在vb.net中,有GroupBox、Panel、TabControl这三个控件可以实现上面所提到的三个分组目的,所以我们称它们为分组控件。 前面我们了解了GroupBox(控件组)控件(vb.net入门——分组控件:GroupBox控件的使用)的使用,这里我们将来看看下怎么使用Panel(也称面板)控件。实际上,Panel很类似于GroupBox,其区别是:只有GroupBox控件可以显示标题,而只有Panel控件可以有滚动条。 Panel控件在工具箱中的图标如图所示:。 一、Panel控件的常用属性 1、AnchorDock:这两个属性是所有有用户界面的控件都有的定位属性。 2、Name属性:标识控件的对象名称 3、BorderStyle属性:指示Panel控件的边框样式,共有三个枚举值: BorderStyle.None(默认)—无边框。 BorderStyle.Fixed3D—三维边框 BorderStyle.FixedSingle—单行边框 此外还可以通过BackColor、BackgroundImage属性来改变Panel控件的外观。 4、Font和ForeColor属性,用于改变Panel控件内部文字的大小与文字的颜色,需要注意的时候,这里改变的是其内部控件的显示的Text属性的文字外观。 5、AutoScroll属性:该属性指示当控件超出Panel显示的区域时,是否自动出现滚动条,默认为False。 二、创建一组控件 1、在窗体上放置Panel控件。从工具箱中拖放一个Panel控件到窗体上的合适位置,调整大小。 2、因为Panel控件没有Text属性来标记自己,所以我们一般可以在它的上面添加一个Label控件来标记它。 3、在Panel控件内拖放其它需要的控件,例如RadioButton控件。 4、设置Panel控件的外观属性。 4、设置示例 在窗体上设置两个Panel控件,分别用2个Label控件来标记它们,每个Panel控件中放置所需的RadioButton控件。如图一所示: 注意:两个Panel控件的AutoScroll属性都设置为True了。 5、我们在拖动单个Panel控件的时候,它内部的控件也会随着移动,以保持和Panel的相对位置不变。同理,删除Panel控件时,它所包含的所有控件也会被删除掉。 6、当我们调整Panel控件所包含的控件的AnchorDock属性的时候,其参照物将不是Form窗体,而是Panel控件了。 7、当AutoScroll 属性为 True 的时候,在设计界面中我们也可以拉动出现的滚动条。 三、编程添加Panel控件以及它所包含的控件 动态添加控件一般需要经过下面三个步骤: 1、创建要添加的控件实例 2、设置新控件的属性。 3、将控件添加到父控件的 Controls 集合

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧