精华内容
下载资源
问答
  • 窗体界面,窗体框架,属性页功能,窗体分割框架,左右分栏================================我希望做的程序就是左边是个tree,然后我点不同的节点,右边的主区域显示不同的内容,请问右边怎么做好呢?是用几个panel吗...

    窗体界面,窗体框架,属性页功能,窗体分割框架,左右分栏
    ================================
    我希望做的程序就是左边是个tree,然后我点不同的节点,在右边的主区域显示不同的内容,请问右边怎么做好呢?是用几个panel吗?要用frame吗?我很糊涂,没有用过delphi,谢谢大家!
    -------------
    用PageControl了,设置多个页,并且每个页的TabVisible为false,使用的时候通过控制PageControl.ActivePage变换各个页面。
    这样做无论设计时,还是运行时,都非常方便!
    -------------
    我也是这样做的:左边Treeview,右边PageControl,然后使用一个函数控制右边PageControl的显示,很方便。
    --------------
    我有时在左边放一个panel,左对齐,里面放一个树
    整个窗体为mdi窗体
    右边为子窗体,这样最大化最小化也很方便
    -------------
    主要看内容,象我们就是左边treeview,右边listview
    下载了torble介绍的菜单控件
    ==================================
    左右分栏:
    最近做一个项目,是C/S结构的,用C#做。客户需要实现像网页那样左右分栏,即像本社区那样的分栏,点击左边的树形菜单,右边实现相应的窗体,把我郁闷了几天,还没解决,希望各位给我点意见。
    -------------
    有SplitContainer和treeview控件啊
    -------------
    这可以用PANEL来做,只不受PANEL的数量会随着左边树形结构的情况来决定
    -------------
    我今天试过了,左边用个树列表菜单,中间加个分隔条,右边就让它空白,不用放Panel,实例化一个子窗体的实例出来,指定MdiParent=this;然后Show()一下,设置子窗体开始时最大化就行了, 这样子窗体实例默认就在主窗体右边了.

    '在左边放的一个TreeView,treeView.dock=dockstyle.left
    Me.IsMdiContainer = True
    Dim frm As New Form2
    frm.MdiParent = Me
    frm.Show()
    frm.Dock = DockStyle.Fill
    -------------
    窗体管理两个左右分割的控件,窗体负责给这两个部分传递不同的数据参数让他们刷新,例如给导航控件传递“站点”参数让它显示不同内容的目录,给内容控件传递“内容”参数让它展示内容。如果根据内容不同会展示不同类型的控件,那么最外层的内容控件会把里层的内容控件动态创建并动态装入自己的Controls集合。
    而选择菜单项到改变内容之间,是因为窗体捕获了菜单暴露出的事件然后调用内容控件的接口来改变内容的。
    -------------
    理解了.Net MDI的实现机制了,实际上Net的MDI和MFC或VB等的其他框架建立的MDI完全是两个概念,比如同一个.Net应用程序中允许出现两个相互独立的MDI父窗口(而且是在同一个ApplicationDomain中).而且MDI窗口中的控件与MDI子窗口是同一级别的,你只要把MDI上的东西步置好其步局、锚定、停靠的方式和规则就可以了,MDI子窗口会和MDI父窗口的子控件一样的规则显示在MDI父窗口上.
    -------------
    窗口和控件还是有很大逻辑区别的。窗口虽然是从ContainerControl继承来的,但是它承载了巨大的扩展功能,例如焦点的控制和转移、自身位置和移动(例如CenterToSceen)的多种辅助方法、菜单控制、外观控制的大量功能等等。使用控件就足够、没有必要使用窗口的时候,不要使用窗口。
    -------------
    MDI 窗口有其特殊需求,只有必须使用 MDI 窗口的地方采用。如果把任何窗口内部的控件都用 MDI 子窗口来代替,不但浪费了资源和增加了(隐藏窗口特征使之符合一般控件的操作习惯),实现扩展功能反而更困难。
    -------------
    可以从Panel派生N多新类,来解决子Form的问题,不过这样主窗口的控制机制(比如菜单控制,工具条控制)太难实现,甚至于你在左面板上添加一个命令按钮,你甚至需要为活动面版专门添加一个焦点控制器,才检索最后一个拥有焦点的面板,而且这个面板在析构或隐藏时必须告诉这个控制器他可能由于特殊操作造成的失焦现象的发生,因为主窗口可以根本不知道某一Panel存在还是不存在,是不是可见,等等,这些判断都需要在主窗口的代码中实现.对编程来说,用Panel要比Form复杂的多.正因为他们是与左面版完全平级的,所以焦点,不容易控制,如果左面板发现命令,可能,右面板在左面板发令时已失去焦点(比如发令的是一个复选框).实际上许多实例中,在一个含有过多Sheet的而且互相影响的TabControl就已经很不好控制了,如果引入N多没有专业管理的面板,流程就更难了.
    -------------
    左边一个treeview,dock属性=left
    右边一个panel,dock属性=full

    private void btnBill_Click(object sender, System.EventArgs e)//帐单
    {
    showFrmAddBill();
    }

    private void showFrmAddBill()
    {
    panel1.Controls.Clear();
    frmAddBill fab=new frmAddBill();
    fab.TopLevel=false;
    fab.Parent=panel1;
    fab.Dock=DockStyle.Fill;
    fab.Show();
    }

    能看懂吗?
    frmAddBill窗体的属性需要设置一下
    FormBorderStyle=none
    size=form1.panel1.size
    (属性栏中设置即可)

     
    展开全文
  • 新建一个继承自ToolboxService的类,名为DemoToolboxService,加上必要的using语句,所继承的类名按鼠标右键,点实现抽象类,已经帮我们自动完成了DemoToolboxService的框架,由于我们需要设计器窗体上显示一...

    新建一个继承自ToolboxService的类,名为DemoToolboxService,加上必要的using语句,在所继承的类名上按鼠标右键,点实现抽象类,已经帮我们自动完成了DemoToolboxService的框架,由于我们需要在设计器窗体上显示一个工具箱,就像VS左侧的那个工具面板,不过我们现在做一个简单一点的,就用ListBox,在DemoToolboxService中添加一个类型为ListBox的私有成员,并封装成属性。稍微改动一下,实现几个必要的方法,代码如下:

        class DemoToolboxService : ToolboxService
        {
            private ListBox toolBox;
            public ListBox ToolBox
            {
                get { return toolBox; }
                set { toolBox = value; }
            }
    
            protected override CategoryNameCollection CategoryNames => null;
    
            protected override string SelectedCategory
            {
                get => null;
                set { }
            }
    
            //实现工具箱选择
            protected override ToolboxItemContainer SelectedItemContainer
            {
                get
                {
                    if (toolBox.SelectedIndex>0)
                    {
                        return new ToolboxItemContainer((ToolboxItem)toolBox.SelectedItem);
                    }
                    return null;
                }
                set 
                {
                    //实现鼠标画好控件后,让鼠标变回选择状态
                    if (value == null)
                    {
                        toolBox.SelectedIndex = -1;
                    }
                }
            }
            
            //实现带分类的工具列表,由于目前不分类,所以即为全部工具
            protected override IList GetItemContainers()
            {
                ToolboxItem[] t = new ToolboxItem[this.toolBox.Items.Count];
                this.toolBox.Items.CopyTo(t, 0);
    
                return t;
            }
    
            protected override IList GetItemContainers(string categoryName)
            {
                throw new NotImplementedException();
            }
    
            protected override void Refresh()
            {
                throw new NotImplementedException();
            }
        }

    切换到主Form的设计界面,在那个SplitContainer左侧放上一个panel1,并把Dock属性设置为Left,作为将要完成的工具箱的容器,另外再放一个panel2,把Dock属性设置为Fill,作为Form的容器,再却换到Form的代码编辑界面,添加一个类型为DemoToolService的私有成员toolBoxService,修改Load事件代码,相关的代码如下:

    public partial class Form1 : Form
        {
            private DemoToolboxService toolBoxService;
    
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                DesignSurface surface = new DesignSurface();
                surface.BeginLoad(typeof(Form));
                Control view = (Control)surface.View;
                view.Dock = DockStyle.Fill;
                //原来的最后一行
                //this.Controls.Add(view);
                //this.splitContainer1.Panel1.Controls.Add(view);
                this.panel2.Controls.Add(view);
    
                this.propertyGrid1.SelectedObject = surface.ComponentContainer.Components[0];
    
                toolBoxService = new DemoToolboxService();
    
                toolBoxService.ToolBox = new ListBox();
                toolBoxService.ToolBox.Items.Add("Point");
                toolBoxService.ToolBox.Items.Add(new ToolboxItem(typeof(Button)));
                toolBoxService.ToolBox.Items.Add(new ToolboxItem(typeof(TextBox)));
                toolBoxService.ToolBox.Items.Add(new ToolboxItem(typeof(Label)));
                toolBoxService.ToolBox.Items.Add(new ToolboxItem(typeof(TabControl)));
                toolBoxService.ToolBox.Items.Add(new ToolboxItem(typeof(StatusBar)));
    
                toolBoxService.ToolBox.Dock = DockStyle.Fill;
                this.panel1.Controls.Add(toolBoxService.ToolBox);
    
                //获取设计器的服务容器
                IServiceContainer container = surface.GetService(typeof(IServiceContainer)) as IServiceContainer;
                if (container != null)
                {
                    //为对应的容器添加服务容器
                    container.AddService(typeof(IToolboxService), toolBoxService);
                }
            }
        }

     

    运行方案,并试着在所设计的窗体上加上几个控件,界面如下:

    展开全文
  • C#的窗体上添加个ActiveX控件

    千次阅读 2013-11-10 15:48:27
     要C#的窗体上添加个ActiveX控件步骤如下:  1) 使用regvsr32注册ActiveX控件  2) 工具-->选择工具箱,打开选择工具箱对话框  3) com组件选项找到你已经注册好的ActiveX控件,选中,确定  4) 工具箱就...

    1.简介

         要在C#的窗体上添加个ActiveX控件步骤如下:

        1) 使用regvsr32注册ActiveX控件

        2) 工具-->选择工具箱,打开选择工具箱对话框
        3) 在com组件选项上找到你已经注册好的ActiveX控件,选中,确定
        4) 工具箱就会自动添加这个ActiveX控件了,剩下的就是把这个控件拖到窗口上就OK

    展开全文
  • 框架控件

    千次阅读 2010-04-05 21:13:00
    框架控件是容器控件中的一个,另外两个是窗体和picture控件。容器中的控件不仅可以随着载体同时移动,而且控件的位置... 添加框架的方法有两种:·使用框架控件将其他控件分组时,应首先绘制frame控件,然后激活fra

    框架控件是容器控件中的一个,另外两个是窗体和picture控件。在容器中的控件不仅可以随着载体同时移动,而且控件的位置属性也是以相对容器的位置来设置的。

    控件不仅可以作为其他控件的容器,起到修饰窗体的作用,而且可用框架将其他控件分成可标识的控件组。所以框架经常和单选按钮和多选按钮一同使用。

     

    添加框架的方法有两种:

    ·使用框架控件将其他控件分组时,应首先绘制frame控件,然后激活frame控件,在绘制其中的控件。

    ·如果希望将已经存在的若干控件放在框架中,则选定需要放入框架中的所有控件,将它们剪切到剪贴板,然后选定frame框架,在粘贴到frame控件。若要选择框架中的多个控件,按shift或ctrl键的同时点击均可。

     

    框架的主要属性:

    caption:以前介绍窗体的时候介绍了,就是显示标题的。如果设置为空,则形成了封闭的边线。

    borderstyle属性:设置框架是否有边线。0--无边线,1--有边线

     

    其他属性和方法在窗体控件已经介绍了,

    请看博客:

    窗体控件属性(http://blog.csdn.net/cjqhuadielei/archive/2010/04/01/5442785.aspx

    窗体事件(http://blog.csdn.net/cjqhuadielei/archive/2010/04/05/5452495.aspx

    窗体方法(http://blog.csdn.net/cjqhuadielei/archive/2010/04/02/5446202.aspx

    展开全文
  • 对于一个应用程序而言,...添加控件的另一种方法:即通过窗体的controls类的add方法,格式如下 窗体的标志.controls.add(控件标识符) 例子: //创建一个mybut一个对象 Button mybut=new button(); ...
  • 并且能提供更酷炫的效果,但是WinForm中使用WPF窗体出现了问题,网上找了一下有些人说Winform不能引用WPF的窗体,我就很纳闷,Win32都能引用WPF控件,怎么可能同样运行.net Fromework框架下的Winfrom不能运行...
  • .NET Windows Forms Barcode 控件是一个成熟的,易用的自动化组件,自2002年就被用于到IDAutomation的Barcode Label Software和Barcode Image Generator中。它兼容Visual Basic .NET, Visual C# .NET, Borland ...
  • 遍历窗体中所有的控件

    千次阅读 2013-09-12 16:27:59
    做了一个很简单的demo,在窗体中放置了三个控件:TextBox,Label,Button 在窗体的Formload事件中,添加如下代码: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) ...
  • Excel中的窗体控件和ActiveX控件

    千次阅读 2009-09-10 09:43:00
    几个关键点:用对象浏览器F2进行查看,虽然代码不会自动提示,但是仍然可以调用。 From:...一种是窗体工具条控件(Forms toolbar controls),通过点击菜单“视图”->“工具
  • 基于halcon的视觉软件窗体控件设计,包括自由窗体控件设计,视觉软件系统窗体自由拖动,组合设计开发C#开发
  • 因为通过使用 .Net 框架,开发人员可以拖动一系列的控件窗体上,并书写一些简单的与事件相关联的代码然后IDE中按F5,一个完完全全的窗体程序就诞生了!所有控件都将自己绘制自己,窗体或者控件的大小和缩放都...
  • QT Desinger设计窗体应用程序框架

    千次阅读 2016-02-25 02:03:43
    目录目录 前言 系统软件 QT Designer Using QT Designer Open QTDesigner Tool ...ii 拖动控件设计你喜欢的窗体框架 iii 保存ui文件 iiii 将ui文件转换为py文件 使用pyuic4bat 使用PyCharm External Tools前言Q
  • C#窗体控件简介

    千次阅读 2019-03-26 12:09:34
    C#窗体控件简介-选项卡控件 Windows应用程序中,选项卡用于将相关的控件集中一起,放在一个页面中用以显示多种综合信息。选项卡控件通常用于显示多个选项卡,其中每个选项卡均可包含图片和其他控件。选项卡相当...
  • 作者:David S. Platt 出自:微软 ... 下载本文的代码: WebC.exe (274KB) 摘要 预建的自定义控件可以简化和加快应用程序的设计,并使您能够维护 UI 的一致性。...对于不愿意使用预先打包的控件的人来说,Visual Stud...
  • GroupBox控件常常用于逻辑地组合一组控件,如RadioButton 及 CheckBox控件,显示一个框架,其有一个标题。 组框的用法非常简单,把它拖放到窗体上,再把所需的控件拖放到组框中即可(但其顺序不能颠倒--不能把组框...
  • C# Windows 窗体的.Net 框架绘图技术

    千次阅读 2019-04-09 12:05:43
    当编写一个典型的Windows 窗体程序时,...因为通过使用 .Net 框架,开发人员可以拖动一系列的控件窗体上,并书写一些简单的与事件相关联的代码然后IDE中按F5,一个完完全全的窗体程序就诞生了!所有控件都将自...
  • VB讲课笔记06:窗体与常用控件

    千次阅读 2018-03-10 17:24:29
    VB讲课笔记06:窗体与常用控件 一、窗体设计 窗体是VB中最基本的对象,是应用程序的基本组成部分,是菜单栏、工具栏和控件等对象的容器,是应用程序与用户交互的窗口或对话框。窗体设计是整个VB应用程序设计的基础...
  • Access(窗体控件)

    2018-06-15 13:13:00
    创建了窗体框架后,还能向窗体添加各种控件,常用的控件有20多种。熟练掌握控件的操作之后,可以快速运用控件窗体进行布局、编辑、调整等操作。 转载于:https://www.cnblogs.com/hhz1/p...
  • 添加引用后,如需要使用控件还需要Toolbox中添加对应的dll方可显示。
  • 在窗体上使用Windows XP风格的控件

    千次阅读 2006-09-28 10:04:00
    一.概要 Windows XP开创了一种全新的Windows用户界面(UI),这种用户界面给用户一种现代化的、超时髦的感受。Windows XP新创了闪亮的具有圆形边角的控件以及极富未来派气息的进度条等具有新风格的控件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,823
精华内容 8,729
关键字:

在窗体上添加框架控件