‘壹’ c#里panel 使用方法
你这个应该用mdi 窗丛颂唯体实现吧
用panel没试过 不渗培过你樱空可以在menu的点击事件里写上 点击的时候打开panel
‘贰’ c#panel内窗体控制panel切换另一个窗体
在 C# 中,可以使用 Panel 控件来实现在一个窗体中切换另一个窗体的效果。
首先需要创建一个 Panel 控件,用来容纳其他的窗体。接下来,在点击按钮或执行其他操作时,使用 Panel.Controls.Clear() 方法清液渗空 Panel 中的控件,然后使用 Panel.Controls.Add() 方法将新的窗体加入。
public partial class Form1 : Form
{
private Form2 form2;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
panel1.Controls.Clear();
form2 = new Form2();
panel1.Controls.Add(form2);
form2.Show();
}
}
上面这段代码中,当点击按钮 button1 时,会先闹源脊清空 panel1 中的控件,然后创建一个新的 Form2 实例,并将其添加到 panel1 中。这样就可以在点击按钮时切换 Form2 和之前的窗体了。
值得注意的是,如果不是只切换一次 Form2 是否要在每次切换后重新 new 出来。
同样的也可以在第一次打开窗体的时候就加入到 panel里面,并且将窗体设置为隐藏。在需要的时候只需要将窗体显示出来即可。裂猜
‘叁’ 在c#中,panel主要用来当做控件的容器来使用
disigner文件里搜索一下两个panel的名字,找到panel1.add()这样的方法,其中亮野如果有panel2的话,删除那一行。罩雀然后找到最物键早后,会有this.controls.add()方法,在里面加上panel2就可以了。
原因其实是一个panel被当成了另一个子控件了。
‘肆’ panel控件的使用
例如有3个panel,分别为panel1,panel2,panel3
如果重叠的话,租御把他们的大小设置为相同大小,直接通过雀罩上下层来控制即可,例如想要panel2显示顷型闹出来,就用
panel2.BringToFront;
要是想panel1显示则用panel1.BringToFront即可
不需要用visible来控制的;
‘伍’ JAVA中的JPanel怎么使用呢
使用方法:
JPanel可以为添加到窗体中的轻型控件提供通用的容器。默认情况下,面板容器不会向控件添加任何除自身背景之外的颜色,但是,可以轻松地向其添加边框(borders)并根据需要改制样式。
在大多数Java GUI外观体验(look and feel)中,面板容器默认是不透明。不透明的面板容器跟普通的目录窗格功能差别不大,并且可以有效帮助样式改进。
设置图层管理器
和其他容器(container)一样,面板容器panel也使用布局管理器(Layout Manager)对添加到容器中的组件(compnent)进行定位和设置尺寸大小。
默认情况下亮没,面板容器的布局管理器是FlowLayout(流式布局)类的一个实例,这个类对放置在容器中的空间按行进行布局(从左到右诸行排列)。在创建面板容器时,你可以轻松地使用任何其他
布局管理器通过调用setLayout方法或指定一个布局管理器。
如下是一个在创建面板容器时设置图层管理器的例子:
JPanel p=new JPanel(new BorderLayout());
但这种方法不能用在BoxLayout(盒子布局)中,因为BoxLayout构造器需要一个预留(pre-existing)容器。如下所示:
JPanel p=new JPanel();
p.setLayout(new BoxLayout(p,BoxLayout.PAGE_AXIS));
添加控件
向面板容器中添加组件时使用add()方法,而向add()方法中传递的参数决定于该面板容器使用哪个布局管理器。当所用的布局管理器是FlowLayout,BoxLayout,GridLayout,或SpringLayout时,像通常那样向add()方法传递单一的参数即可,如下所示:
aFlowPanel.add(aComponent);
aFlowPanel.add(anotherComponent);
而当布局管理器为BorderLayout时,还需要提供另一个参数来指定添加到容器中控件的位置,例如:
aBorderPanel.add(aComponent,BorderLayout.CENTER);
aBorderPanel.add(anotherComponent,BorderLayout.PAGE_END);
对于GridBagLayout布局管理器,可以使用上述任一方法,但必须以某种方式对每个组件指定GridBagConstraints,例如:
JPanel pane=new JPanel(new GridBagLayout());
GridBagConstraints c=new GridBagConstraints();
警告
Swing不是线程安全的。
此类的序列化对象与以后的Swing版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同Swing版本的应用程序之间进行RMI(Remote Method Invocation,远程方法调用)。
JPanel一个面板也是一个容器JPanel Pan=new JPanel();
Pan.setLayout(null);//设置为空布局也就是自由布局
Pan.add(控件);//添加控件
JPanel是java图形化界面中最常使用的容器。实例:在窗体中添加一个蓝色的面板
//PanelDemo.java
import javax.swing.*;
import java.awt.*;//引入AWT包,因为要使用到颜色类
class PanelDemo{
public static void main(String[]args)throws Exception
{JFrame f=new JFrame("第一个Java窗口");
f.setSize(300,200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
f.setResizable(false);
f.setLocationRelativeTo(null);
f.setLayout(null);//设置窗体布局为空布局
JPanel p=new JPanel();//实例化一个面板
//设置面板背景色为蓝色,如果不引入敬岩纳AWT包,程序将出错,可以试试看
p.setBackground(Color.BLUE);
p.setSize(100,100);//设置面板对象大小
f.getContentPane().add(p);//将面板添加到窗体中
//如果使用下面添加面板的方法,面板将布满整个窗口,可以试试看
//f.setContentPane(p);
}
}
‘陆’ extjs的panel组件怎么使用
//html代码
<div id="container">
</div>
//js代码
var p = new Ext.Panel({
title: 'My Panel',//标题
collapsible:true,//右上角上的那个收缩按钮,设为false则不显示
renderTo: 'container',//这个panel显示在html中id为container的层中
width:400,
height:200,
html: "<p>我是内容,我包含的html可以被执行!</p>"//panel主体中的内容,可以执握吵行html代码
});
因为panel组件的子类组件包括TabPanel,GridPanel,FormPanel,TreePanel组件,所以非常有段告侍必要介绍Panel组件的配置参数和相关的属性、方法。
//配置参数(只列举部分常用参数)
1.autoLoad:有效的url字符串,把那个url中的body中的数据加载显示,但是可能没有样式和js控制,只是html数据
2.autoScroll:设为true则内容溢出的时候产生滚动条,默认为false
3.autoShow:设为true显示设为"x-hidden"的元素,很有必要,默认为false
4.bbar:底部条,显示在主体内,//代码:bbar:[{text:'底部工具栏bottomToolbar'}],
5.tbar:顶部条,显示在主体内,//代码:tbar:[{text:'顶部工具栏topToolbar'}],
6.buttons:按钮集合,自动添加到footer中(footer参数,显示在主体外)//代码:buttons:[{text:"按钮位于footer"}]
7.buttonAlign:footer中按钮的位置,枚举值为:"left","right","center",默认为right
8.collapsible:设为true,显示右上角的收缩按钮,默认为false
9.draggable:true则可拖动,但需要你提供操作过程,默认为false
10.html:主体的内容
11.id:id值,通过id可以找到这个组件,建议一般加上这个id值
12.width:宽度
13.height:高度
13.title:标题
14.titleCollapse:友烂设为true,则点击标题栏的任何地方都能收缩,默认为false.
15.applyTo:(id)呈现在哪个html元素里面
16.contentEl:(id)呈现哪个html元素里面,把el内的内容呈现
17.renderTo:(id)呈现在哪个html元素里面
//关于这三个参数的区别(个人认为:applyTo和RenderTo强调to到html元素中,contentEl则是html元素到ext组件中去):
英文如下(本人英语poor,不敢乱翻译):
contentEl - This config option is used to take existing content and place it in the body of a new panel. It is not going to be the actual panel itself. (It will actually the innerHTML of the el and use it for the body). You should add either the x-hidden or the x-hide-display CSS class to prevent a brief flicker of the content before it is rendered to the panel.
applyTo - This config option allows you to use pre-defined markup to create an entire Panel. By entire, I mean you can include the header, tbar, body, footer, etc. These elements must be in the correct order/hierarchy. Any components which are not found and need to be created will be autogenerated.
renderTo - This config option allows you to render a Panel as its created. This would be the same as saying myPanel.render(ELEMENT_TO_RENDER_TO);
哪位大人帮忙翻译下...
考虑到入门,方法事件会在以后的文章中以实例穿插。
1.可拖动的panel实例
下面我们做个可拖动panel例子来熟悉下panel这个最基本的组件.
//html代码
..无..
//下面创建一个允许拖动的panel,但是拖动的结果不能保存
var p=new Ext.Panel({
title: 'Drag me',
x: 100,
y: 100,
renderTo: Ext.getBody(),//x,y,renderTo:Ext.getBody()初始化panel的位置
floating: true,//true
frame: true,//圆角边框
width: 400,
height: 200,
draggable:true
}).show();//在这里也可以不show()
但是还不能拖到其他的地方,我们需要改写draggable:
draggable: {
insertProxy: false,//拖动时不虚线显示原始位置
onDrag : function(e){
var pel = this.proxy.getEl();
this.x = pel.getLeft(true);
this.y = pel.getTop(true);//获取拖动时panel的坐标
},
endDrag :
function(e){
this.panel.setPosition(this.x, this.y);//移动到最终位置
}
}
实现了可保存的拖动
拖动的时候阴影还在原位置,我们再在draggable中的onDrag事件中添加代码:
var s = this.panel.getEl().shadow;
if (s) {
s.realign(this.x, this.y, pel.getWidth(), pel.getHeight());
}
//shadow的realign方法的四个参数,改变shadow的位置大小属性
最后这个可拖动的panel的代码为:
var p=new Ext.Panel({
title: 'Drag me',
x: 100,
y: 100,
renderTo: Ext.getBody(),
floating: true,
frame: true,
width: 400,
height: 200,
draggable: {
insertProxy: false,
onDrag :
function(e){
var pel = this.proxy.getEl();
this.x = pel.getLeft(true);
this.y = pel.getTop(true);
var s = this.panel.getEl().shadow;
if (s) {
s.realign(this.x, this.y, pel.getWidth(), pel.getHeight());
}
},
endDrag : function(e){
this.panel.setPosition(this.x, this.y);
}
}
})
//效果图片我就不贴出来了
2.带顶部,底部,脚部工具栏的panel
var p=new Ext.Panel({
id:"panel1",
title:"标题",
collapsible:true,
renderTo:"container",
closable:true,
width:400,
height:300,
tbar:[{text:"按钮1"},{text:"按钮2"}], //顶部工具栏
bbar:[{text:"按钮1"},{text:"按钮2"}], //底部工具栏
html:"内容",
buttons:[{text:"按钮1"},{text:"按钮2"}] //footer部工具栏
});
我们已经在各种工具栏上添加了按钮,但是却没有激发事件,下面我们来添加按钮事件代码:
tbar:[{text:"按钮1",handler:function(){Ext.MessageBox.alert("我是按钮1","我是通过按钮1激发出来的弹出框!")}},{text:"按钮2"}],
//改写tbar,添加handler句柄,点击顶部工具栏上按钮1,弹出提示框,效果图大家想象下,就不贴出来了
当然,一般情况下,我们只要一个工具栏,这里只是为了演示!
3.panel工具栏
//添加下面的代码到panel配置参数中
tools:[{id:"save"},{id:"help"},{id:"up"},{id:"close",handler:function(){Ext.MessageBox.alert("工具栏按钮","工具栏上的关闭按钮时间被激发了")}}],
//id控制按钮,handler控制相应的事件
//id的枚举值为:
toggle (collapsable为true时的默认值)
close
minimize
maximize
restore
gear
pin
unpin
right
left
up
down
refresh
minus
plus
help
search
save
print
‘柒’ C# 窗体应用程序中的Panel控件有什么作用,怎么使用啊
是用于窗体布局使用慎辩尺,一般有两种效果,第一:将窗宽高体的控件分组,当你的窗体最大化的时候设这灶兆Panel的锚,使面板内部的控件按比例分布到窗体各处。第二,在窗体有多组单选按钮的时候,就使用Panel来区分,那些单选按钮是一组,例如:窗体有一组性别,和一组所在区域,则添加两个面板,将男女放在一个panel,将一期,二期放在另一个panel里,程序自动按panel分组
‘捌’ panelcheck软件如何使用
zoukankan html css js c++ java
Panel控件的使用
我们对控件进行分组的原因不外乎三个:
1、为了获肆轿得清晰的用户界面而将相关的窗体元素进行可视化分组。
2、编程分组,如对单选按钮进行分组。
3、为了在设计时将多个控件作为一个单元来移动。
在vb.net中,有GroupBox、Panel、TabControl这三个控件可以实现上面所提到的三个分组目的,所以我们称它们为分组控件。
前面我们了解了GroupBox(控件组)控件(vb.net入门——分组控件:GroupBox控件的使用)的使用,这里我们将来看看下怎么使用Panel(也称面板)控件。实际上,Panel很类似于GroupBox,其区别是:只有GroupBox控件可以显示标题,而只有Panel控件可以有滚动条。
Panel控件在工具箱中的图标如图所示:。
一、Panel控件的常用属性
1、Anchor和Dock:这两个属性是所有有用户界面的控件都有的定位属性。
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控件所包含的控件的Anchor和Dock属性的时候,其参照物将不是Form窗体,而是Panel控件了。
7、当AutoScroll 属性为 True 的时候,在设计界面中我们也可以拉动出现的滚动条。
三、编程添加Panel控件以及它所包含的控件
动态添加控件一般需要经过下面三个步骤:
1、创建要添加的控件实例
2、设置新控件的属性。
3、将控件添加到父控件的 Controls 集合
‘玖’ 在c#中,panel主要用来当做控件的容器来使用
是的 panel是面板,上面迟绝可以放其他档辩控件,拖进去就可码蠢姿以,或者在designer里写代码 panel1.controls.add(控件名);