热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

DevComponents.DotNetBarDotNetBarManagerDockSiteBar布局简单Demo

总结总结:处理好bar之间的布局,有3个需要注意的点[设置DockSide的顺序(想象一下俄罗斯方块落下的顺序),DockLine,Stretch,DockOffset]当然其它属

总结


总结: 处理好bar之间的布局 ,
有3个需要注意的点 [ 设置DockSide的顺序(想象一下俄罗斯方块落下的顺序) , DockLine , Stretch , DockOffset ]
当然其它属性也很重要 , 但是粗略的布局 , 先需要注意这几点
#tucao
"DevComponents.DotNetBar"是有点难用啊 , 并且网上相关教程也很少 , , ,

直接上代码

using DevComponents.DotNetBar;
using System.Windows.Forms;
namespace WindowsFormsApp2
{
public partial class DockSiteBarManagerSample : Form
{
private DevComponents.DotNetBar.DotNetBarManager dotNetBarManager1;
private DevComponents.DotNetBar.DockSite dockSite4;
private DevComponents.DotNetBar.DockSite dockSite1;
private DevComponents.DotNetBar.DockSite dockSite2;
private DevComponents.DotNetBar.DockSite dockSite3;
private Bar bar1, bar2, bar3, bar4, bar5, bar6, bar7, bar8, bar9, bar10, bar11, bar12, bar13, bar14, bar15;
public DockSiteBarManagerSample()
{
InitializeComponent();
this.compOnents= new System.ComponentModel.Container();
this.dotNetBarManager1 = new DevComponents.DotNetBar.DotNetBarManager(this.components);
this.dockSite4 = new DevComponents.DotNetBar.DockSite();
this.dockSite1 = new DevComponents.DotNetBar.DockSite();
this.dockSite2 = new DevComponents.DotNetBar.DockSite();
this.dockSite3 = new DevComponents.DotNetBar.DockSite();
//
// dotNetBarManager1
//
this.dotNetBarManager1.BottomDockSite = null;
this.dotNetBarManager1.LeftDockSite = null;
this.dotNetBarManager1.ParentForm = this;
this.dotNetBarManager1.RightDockSite = null;
this.dotNetBarManager1.ShowCustomizeCOntextMenu= false;
this.dotNetBarManager1.UseGlobalColorScheme = false;
this.dotNetBarManager1.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.dotNetBarManager1.ToolbarBottomDockSite = this.dockSite4;
this.dotNetBarManager1.ToolbarLeftDockSite = this.dockSite1;
this.dotNetBarManager1.ToolbarRightDockSite = this.dockSite2;
this.dotNetBarManager1.ToolbarTopDockSite = this.dockSite3;
this.dotNetBarManager1.TopDockSite = null;
//
// dockSite4
//
this.dockSite4.AccessibleRole = System.Windows.Forms.AccessibleRole.Window;
this.dockSite4.Dock = System.Windows.Forms.DockStyle.Bottom;
this.dockSite4.Location = new System.Drawing.Point(0, 453);
this.dockSite4.Name = "dockSite4";
this.dockSite4.Size = new System.Drawing.Size(782, 0);
this.dockSite4.TabIndex = 3;
this.dockSite4.TabStop = false;
this.dockSite4.Visible = true;
//
// dockSite1
//
this.dockSite1.AccessibleRole = System.Windows.Forms.AccessibleRole.Window;
this.dockSite1.Dock = System.Windows.Forms.DockStyle.Left;
this.dockSite1.Location = new System.Drawing.Point(0, 0);
this.dockSite1.Name = "dockSite1";
this.dockSite1.Size = new System.Drawing.Size(0, 453);
this.dockSite1.TabIndex = 0;
this.dockSite1.TabStop = false;
this.dockSite1.Visible = true;
//
// dockSite2
//
this.dockSite2.AccessibleRole = System.Windows.Forms.AccessibleRole.Window;
this.dockSite2.Dock = System.Windows.Forms.DockStyle.Right;
this.dockSite2.Location = new System.Drawing.Point(782, 0);
this.dockSite2.Name = "dockSite2";
this.dockSite2.Size = new System.Drawing.Size(0, 453);
this.dockSite2.TabIndex = 1;
this.dockSite2.TabStop = false;
this.dockSite2.Visible = true;
//
// dockSite3
//
this.dockSite3.AccessibleRole = System.Windows.Forms.AccessibleRole.Window;
this.dockSite3.Dock = System.Windows.Forms.DockStyle.Top;
this.dockSite3.Location = new System.Drawing.Point(0, 0);
this.dockSite3.Name = "dockSite3";
this.dockSite3.Size = new System.Drawing.Size(782, 0);
this.dockSite3.TabIndex = 2;
this.dockSite3.TabStop = false;
this.dockSite3.BackColor = System.Drawing.Color.Red;
this.Controls.Add(this.dockSite1);
this.Controls.Add(this.dockSite2);
this.Controls.Add(this.dockSite3);
this.Controls.Add(this.dockSite4);
BarsTest();
}
private void BarsTest()
{
bar1 = InitializeBar("bar1", eDockSide.Top);
bar2 = InitializeBar("bar2", eDockSide.Top);
bar3 = InitializeBar("bar3", eDockSide.Top);
//bar4 = InitializeBar("bar4", eDockSide.Top);
//bar5 = InitializeBar("bar5", eDockSide.Bottom);
//bar6 = InitializeBar("bar6", eDockSide.Bottom);
//bar7 = InitializeBar("bar7", eDockSide.Left);
//bar8 = InitializeBar("bar8", eDockSide.Right);
//bar1独占1行, bar2和bar3占1行,
bar1.Stretch = true;
bar1.DockLine = 3;
bar2.Stretch = false;
bar3.Stretch = false;
bar2.DockLine = 0;
bar3.DockLine = 0;
dotNetBarManager1.Bars.Add(bar3);
dotNetBarManager1.Bars.Add(bar1);
dotNetBarManager1.Bars.Add(bar2);
//dotNetBarManager1.Bars.Add(bar4);
//dotNetBarManager1.Bars.Add(bar5);
//dotNetBarManager1.Bars.Add(bar6);
//dotNetBarManager1.Bars.Add(bar7);
//dotNetBarManager1.Bars.Add(bar8);
//添加顺序直接关系到谁在第一个谁在第二个...
bar2.DockSide = eDockSide.Top;
bar3.DockSide = eDockSide.Top;
bar1.DockSide = eDockSide.Top;
//总结: 处理好bar之间的布局 ,
//有3个需要注意的点 [ 设置DockSide的顺序(想象一下俄罗斯方块落下的顺序) , DockLine , Stretch , DockOffset ]
//当然其它属性也很重要 , 但是粗略的布局 , 先需要注意这几点
bar1.LayoutType = DevComponents.DotNetBar.eLayoutType.Toolbar;
bar2.LayoutType = DevComponents.DotNetBar.eLayoutType.Toolbar;
bar3.LayoutType = DevComponents.DotNetBar.eLayoutType.Toolbar;
//bar4.DockSide = eDockSide.Top;
//bar4.LayoutType = DevComponents.DotNetBar.eLayoutType.DockContainer;
//bar5.DockSide = eDockSide.Bottom;
//bar6.DockSide = eDockSide.Left;
//bar7.DockSide = eDockSide.Left;
//bar8.DockSide = eDockSide.Right;
}
///


/// 初始化
///

///


///


private Bar InitializeBar(string name, eDockSide eDockSide)
{
Bar bar = new Bar();
bar.Text = name;
bar.Name = name;
bar.AlwaysDisplayDockTab = true;//Indicates whether tab that shows all dock containers on the bar is visible all the time.
bar.CanCustomize = false;
bar.CanDockBottom = true;
bar.CanDockDocument = true;
bar.CanDockLeft = true;
bar.CanDockRight = true;
bar.CanDockTop = true;
bar.CanHide = true;
bar.CanUndock = true;
bar.ShowToolTips = true;
//bar.IsHandleDoubleClickExternal = true;
//Stretch
bar.Stretch = false;//Specifies whether Bar will stretch to always fill the space in dock site.
bar.TabNavigation = true;
bar.TabStop = true;
bar.AccessibleRole = System.Windows.Forms.AccessibleRole.ToolBar;
//要想无限加bar就不能设置最小值,否则bar加多了显示会有问题
//bar.MinimumSize = new Size(300, 200);
//bar.DockTabAlignment = DevComponents.DotNetBar.eTabStripAlignment.Top;//Gets or sets the dock tab alignment.
//bar.LayoutType = DevComponents.DotNetBar.eLayoutType.DockContainer;
bar.Style = eDotNetBarStyle.Office2007;
bar.DockLine = 0;
bar.DockOffset = 10;
BarAddButtonTest(bar);
bar.DockSide = eDockSide;
return bar;
}
///


/// 向Bar中添加测试Items
///

///


private void BarAddButtonTest(Bar bar)
{
var _fileToolStripMenuItem = new ButtonItem();
_fileToolStripMenuItem.Name = "fileToolStripMenuItem";
_fileToolStripMenuItem.Size = new System.Drawing.Size(180, 180);
_fileToolStripMenuItem.CanCustomize = true;
_fileToolStripMenuItem.UserCustomized = true;
//_fileToolStripMenuItem.FixedSize = new System.Drawing.Size(180, 180);
_fileToolStripMenuItem.FOntBold= true;
_fileToolStripMenuItem.FOntItalic= true;
_fileToolStripMenuItem.FOntUnderline= true;
_fileToolStripMenuItem.HotFOntBold= true;
_fileToolStripMenuItem.HotFOntUnderline= true;
_fileToolStripMenuItem.Category = "Standard";
_fileToolStripMenuItem.AccessibleRole = System.Windows.Forms.AccessibleRole.MenuItem;
_fileToolStripMenuItem.Text = "Test1111";
var test = new ButtonItem();
test.Text = "测试111";
test.Click += (sender, e) =>
{
MessageBox.Show("Test--click");
};
_fileToolStripMenuItem.SubItems.Add(test);
bar.Items.AddRange
(
new BaseItem[]
{
new ButtonItem { Text = "Button"+ bar.Name },
new TextBoxItem { Text = "TextBox"+ bar.Name },
new ButtonItem { Text = "Button"+ bar.Name },
_fileToolStripMenuItem,
}
);
}
}
}



推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了brain的意思、读音、翻译、用法、发音、词组、同反义词等内容,以及脑新东方在线英语词典的相关信息。还包括了brain的词汇搭配、形容词和名词的用法,以及与brain相关的短语和词组。此外,还介绍了与brain相关的医学术语和智囊团等相关内容。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • 最近学习反射机制的时候Properties.load(读取本地文件流的时候怎么也找不到加载文件后面发现IDEA的默认根目录是在它的Project工程下IDEA的文件目录和Ec ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • IB 物理真题解析:比潜热、理想气体的应用
    本文是对2017年IB物理试卷paper 2中一道涉及比潜热、理想气体和功率的大题进行解析。题目涉及液氧蒸发成氧气的过程,讲解了液氧和氧气分子的结构以及蒸发后分子之间的作用力变化。同时,文章也给出了解题技巧,建议根据得分点的数量来合理分配答题时间。最后,文章提供了答案解析,标注了每个得分点的位置。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
author-avatar
手机用户2502938867
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有