DotNetBar布局(一)

DotNetBar布局(一)相信大家搞 NET 桌面程序开发都会用到一些界面布局的组件 常用的由 DotNetBar 和 devexpress 今天主要将 DotNetBar 在项目中布局简单介绍一下 个人感觉这个控件还是有很多 bug 的 不知道什么时候就出现莫名奇妙的排版问题错误 比如突然在设计视图 DotNetBar 控件不能编辑了 又或者突然运行时界面布局是正确的 但是设计视图中控件位置或者属性发生莫名奇妙的变化 又或者由于电脑分辨率的

相信大家搞.NET桌面程序开发都会用到一些界面布局的组件,常用的由DotNetBar和devexpress。今天主要将DotNetBar在项目中布局简单介绍一下,个人感觉这个控件还是有很多bug的,不知道什么时候就出现莫名奇妙的排版问题错误。比如突然在设计视图DotNetBar控件不能编辑了,又或者突然运行时界面布局是正确的,但是设计视图中控件位置或者属性发生莫名奇妙的变化,又或者由于电脑分辨率的问题,突然控件的全貌显示不完全等。一系列的问题,在网上找了半天也没办法解决,不知道为什么。

但是今天还是简单谈谈dotnetbar的基本应用吧,对于刚用这个控件的新手而言,各种控制,各种button,它们之间到底什么关系呢?相信这篇文章会给大家一个整体的感觉。具体项目呢?自己试呗?能用则用!

一ribbonControl

DotNetBar布局(一)

 this.ribbonPanel1.Controls.Add(this.ribbonBar1);

 this.ribbonTabItem1.Panel = this.ribbonPanel1;

this.ribbonControl1.Items.AddRange(newDevComponents.DotNetBar.BaseItem[] {

            this.ribbonTabItem1,

            this.ribbonTabItem2});

this.ribbonControl1.QuickToolbarItems.AddRange(new DevComponents.DotNetBar.BaseItem[]{

            this.office2007StartButton1,

RibbonBar里面可以有buttonItem

this.ribbonBar2.Items.AddRange(new BaseItem[] { this.buttonItem90, this.buttonItem101,this.buttonItem102, this.buttonItem103,this.buttonItem104, this.buttonItem105,this.buttonItem106, this.buttonItem107,this.buttonItem108 });

 Buttonitem可以有subitem

this.btnPipelineSpatialQuery.SubItems.AddRange(new BaseItem[] { this.buttonItem6, this.buttonItem7 });

二:ItemContainer

DotNetBar布局(一)

 this.itemContainer3.SubItems.AddRange(newDevComponents.DotNetBar.BaseItem[] {

            this.buttonItem2,

            this.buttonItem3,

            this.buttonItem4,

            this.buttonItem5,

            this.buttonItem6,

            this.buttonItem7});

 

this.itemContainer2.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[]{

            this.itemContainer3,

            this.galleryContainer1});

this.itemContainer1.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[]{

            this.itemContainer2,

            this.itemContainer4});

 

this.office2007StartButton1.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[]{

            this.itemContainer1});

this.galleryContainer1.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[]{

            this.labelItem8,

            this.buttonItem8,

            this.buttonItem9,

            this.buttonItem10,

            this.buttonItem11});

三:expandableSplitter

DotNetBar布局(一)

this.panelEx4.Dock = DockStyle.Fill;

   this.panelEx4.Controls.Add(this.panelEx5);

   this.panelEx5.Dock = DockStyle.Fill;

   this.panelEx4.Controls.Add(this.expandableSplitter2);

   this.expandableSplitter2.Dock = DockStyle.Bottom;

   this.panelEx4.Controls.Add(this.panelEx6);

   this.panelEx6.Dock = DockStyle.Bottom;

DotNetBar布局(一)

this.sideBar1.Dock = DockStyle.Left;

this.expandableSplitter1.ExpandableControl= this.sideBar1;

this.panelEx4.Dock = DockStyle.Fill;

this.panelEx4.Controls.Add(this.panelEx5);

this.panelEx5.Dock = DockStyle.Fill;

this.panelEx4.Controls.Add(this.expandableSplitter2);

this.expandableSplitter2.Dock = DockStyle.Bottom;

this.expandableSplitter2.ExpandableControl= this.panelEx6;

this.panelEx4.Controls.Add(this.panelEx6);

this.panelEx6.Dock = DockStyle.Bottom;

this.panelEx6.Visible = false;

四 : SideBar

DotNetBar布局(一)

this.sideBar1.Panels.AddRange(newBaseItem[]{
this.sideBarPanelItem3,this.sideBarPanelItem4})

this.sideBarPanelItem4.SubItems.AddRange(newBaseItem[]{ this.controlContainerItem5});

DotNetBar布局(一)

this.controlContainerItem5.Control = this.panel1;

五.控件加载顺序的重要性

DotNetBar布局(一)

this.sideBar1.Dock = DockStyle.Left;

this.expandableSplitter1.ExpandableControl = this.sideBar1;

this.panelEx4.Dock = DockStyle.Fill;

顺序很重要,直接影响界面布局

五.DataGridViewX

  this.dataGridViewX1.AllowUserToAddRows= false;

this.dataGridViewX1.ColumnHeadersHeightSizeMode=DataGridViewColumnHeadersHeightSizeMode.AutoSize;

  this.dataGridViewX1.DefaultCellStyle= style3;

  this.dataGridViewX1.Dock = DockStyle.Fill;

  this.dataGridViewX1.GridColor = Color.FromArgb(0xd0, 0xd7, 0xe5);

  this.dataGridViewX1.Location = new Point(0, 5);

  this.dataGridViewX1.Name = “dataGridViewX1”;

  this.dataGridViewX1.ReadOnly = true;

 this.dataGridViewX1.RowTemplate.Height =0x17;

  this.dataGridViewX1.Size = new Size(780,0×40);

  this.dataGridViewX1.TabIndex =13;

this.dataGridViewX1.MouseClick+=newMouseEventHandler(this.dataGridViewX1_MouseClick)

this.dataGridViewX1.MouseDoubleClick+=newMouseEventHandler(this.dataGridViewX1_MouseDoubleClick);

六.在sidebar里面放TreeView

1.      Sidebar里面先创建一个sidebarpanelItem

2.      在sidebarpanelitem里面再创建一个panelcontaineritem

3.      在将一个panelcontaineritem的controls属性设置为treeview

4.      后将treeview的dock属性设置成fill

5.      注意:在设计视图里面会发现,treeview占满了整个sidebar,但是在运行视图里面是没有问题,这个bug可以忽略

总结:

1.       个人感觉DotNetBar这个组件确实挺好用的,除了那些莫名奇妙的问题,个人用的是适用版的,可能正式购买过后这些问题就会都没了,希望大家都支持正版吧,毕竟大家挣点钱都不容易,最好的方式就是各挣各的钱。

2.       后续还会贴一个项目中实际用到DotnetBar做布局的项目,在里面再进一步谈谈DotNetBar的在实际项目中的完整应用。



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204716.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午7:42
下一篇 2026年3月19日 下午7:42


相关推荐

  • Exception in thread “main” java.lang.SecurityException: Prohibited package name: java.io.test

    Exception in thread “main” java.lang.SecurityException: Prohibited package name: java.io.testException in thread “main” java.lang.SecurityException: Prohibited package name: java.io.test

    2022年4月24日
    84
  • Tomcat安装(详细)

    Tomcat安装(详细)1、Tomcat下载安装​ 1、安装​ (一)Tomcat官网下载​ (二)解压​ (三)配置环境变量​ (四)启动-关闭Tomcat ​ (五)访问测试Tomcat输入http://localhost:8080网页打不开​ 2、了解配置文件及目录结构可以配置启动端口号默认端口号:8080MySQL默认:3306http:80https:443<Connectorport=”8080″protocol=”HTTP/1.1

    2025年11月20日
    6
  • 思维导图软件哪个好?不要错过这份思维导图软件合集

    思维导图软件哪个好?不要错过这份思维导图软件合集小编最近发现了一个可以来做购物清单的简单工具 思维导图软件 思维导图的主要用途就是帮助我们理清思绪 增强计划和想法的逻辑性 可以用来规划任务 管理时间 将想法书面化 非常实用 小编为大家准备了三款个人感觉非常实用的思维导图软件 可以作为一个简单参考 一 MindManager 软件图标下载地址 https sourl cn aRWbbx 这是一款知名度相当高的思维导图软件 无论是学术讲座还是工作汇报 您都可以用 MindManager 轻松做出一份精致明了的思维导图

    2026年3月19日
    2
  • git本地误删文件如何恢复_git恢复误删除分支

    git本地误删文件如何恢复_git恢复误删除分支Git 恢复本地误删的文件

    2022年4月21日
    123
  • 监督学习、无监督学习和半监督学习区别

    监督学习、无监督学习和半监督学习区别1 概念 1 1 监督学习 数据集有输入和输出数据 通过已有的一部分输入数据与输出数据之间的相应关系 生成一个函数 将输入映射到合适的输出 比如分类 1 2 无监督学习 数据集中只有输入 直接对输入数据集进行建模 比如聚类 1 3 半监督学习 综合利用有类标的数据和没有类标的数据 来生成合适的分类函数 2 类别 2 1 监督学习分为分类 classificati 和回归 regression

    2026年3月17日
    2
  • spring aop 切入问题

    spring aop 切入问题spring aop 切入问题

    2022年4月20日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号