VB中Panel和GroupBox区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB中Panel和GroupBox区别相关的知识,希望对你有一定的参考价值。

大家帮我说说VB中Panel和GroupBox区别;
越详细越好啊
谢谢大家了

GroupBox和Panel控件,只存在一点细微的差别而已(这个差别是:只有GroupBox控件可以显示标题,而只有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。

GroupBox(控件组)控件一般是作为其他控件的组的容器的形式存在的,这样有利于用户识别,使界面变得更加友好(GroupBox控件相当于Visual Basic以前版本的Frame控件)。使用控件组控件可以将一个窗体中的各种功能进一步进行分类,例如,将各种选项按钮控件分隔开。
当移动单个GroupBox控件时,它所包含的所有控件也将一起移动。
GroupBox控件的常用属性
1、Anchor和Dock:这两个属性是所有有用户界面的控件都有的定位属性,这里就不啰嗦了。
2、Name属性:标识控件的对象名称。
3、Text属性:显示在GroupBox控件右上方的标题文字,可以用来标识该控件组的描述。
4、Font和ForeColor属性,用于改变GroupBox控件的文字大小以及文字的颜色,需要注意的时候,它不单改变GroupBox控件的Text属性的文字外观,同时也改变其内部控件的显示的Text属性的文字外观。
参考技术A GroupBox和Panel控件,只存在一点细微的差别而已
这个差别是:只有GroupBox控件可以显示标题,而Panel控件可以有滚动条.本回答被提问者和网友采纳
参考技术B 楼主说的没错 就是可以滚动 别的没什么区别!!!!!!!!!!

delphi 使用GDI吧jpg图片绘制在groupbox中的问题

procedure TForm1.Button1Click(Sender: TObject);
var
g : IGpGraphics;
RedPen : IGpPen;
Img : IGpImage;
r : TGpRectF;
mybox:tpanel;
dc:hdc;
begin
mybox:=tpanel.Create(self);
mybox.Parent:=self;
mybox.SetBounds(10,10,480,480);
dc:=getdc(mybox.Handle);
g := NewGpGraphics(dc);
RedPen := NewGpPen(kcRed, 3.0);
g.SmoothingMode := smHighQuality;
Img := NewGpBitmap(ExtractFilePath(ParamStr(0)) + test.jpg');
r := GpRect(0.0, 0.0, 80, 80);
g.ScaleTransform(0.1, 0.1);
g.DrawImage(Img,150,150);
g.ResetTransform();
end;
以上是代码,编译没有报错,但是在运行过程中JPG图片只是闪了一下就没有了,不知道是为什么,望达人解惑
我的最终目的是动态排列N张JPG照片,但是照片都很大,至少都有3兆,大的有10兆,直接将照片放到image控件中是不可能的,只要放十来张就不能放了,占用资源太大了,所以现在想试试绘画上去的方法,但是绘画上去没有控件支持的话貌似是没有事件响应的,所以考虑用groupbox作为载体,将图片放在里面,如果有更好更方便的方法可以实现此功能也请说说

参考技术A 你这N张图片总不会一下子全部都显示在窗体上吧,一是电脑的资源有限,二是用户也看不过来啊!你还不如把图片存放在数据库中,一张一张的加载(显示),这又有什么不好呢?就电脑显示屏来说,如果不是特别需要(比如图片分析,公安才用的上的),几百K和几十M的图片显示效果是差别不大的.追问

之前是考虑过把裁剪过的图放在数据库中,中间要多两道工序,而且效率好像不高,而且少则几十张多则两百张,所以这个是最后不得已的方法了

追答

如果说图片不是由用户来决定的话,放在数据库中是一种最好的办法了

参考技术B 学Delphi的果然没几个靠谱的。
1、GroupBox是Windows标准控件,如果不重写它的消息循环,每次重画Windows都会用默认的灰色画刷覆盖GroupBox表面。另外如果你只是要承载图片,用CreateWindow创建一个普通窗口不行么,非得用GroupBox?
2、至于怎么做,一点不难,我都懒的写。真有兴趣的话,可以进一步追问,我可以告诉你。
参考技术C 可以考虑画到TPaintBox里面,这是个专门用来绘画的控件,把绘画代码写到OnPaint事件里,当有区域失效或调用Invalidate就可以重绘追问

目前正在尝试使用paintbox控件来实现这个功能,但是在如何让图片能够完美填充paintbox还有有问题,图片的宽高是用的图片像素,和控件的宽高完全不是一个计算方法的。。。

本回答被提问者采纳
参考技术D 写绘图的画,应该在OnPaint 事件中去写,这样才能避免窗体在重绘时,图象不会刷新掉。追问

groupbox没有这个事件的,否则我就不会找它的句柄了
不过我找了一下image好像有print事件,我会试一试

追答

此事件是在Form中的

以上是关于VB中Panel和GroupBox区别的主要内容,如果未能解决你的问题,请参考以下文章

Panel控件的使用

怎样使delphi里的控件随窗体的大小变化而变化

Windows 窗体应用程序中的 Panel vs GroupBox

如何使用 XAML 在 Panel 或 GroupBox 等整个容器上设置 IsReadOnly / IsEnabled?

delphi 使用GDI吧jpg图片绘制在groupbox中的问题

VC++下怎么实现Delphi BCB VB 中的Panel那种容器控件的效果