VB.NET用panel装子窗体时提示"无法将顶级控件添加到控件。"

VB.NET用panel装子窗体时提示"无法将顶级控件添加到控件。",第1张

窗体默认是顶级控件,不能添加到其他容器中

如果想将窗体像一般控件那样添加进容器中,需要将窗体的TopLevel属性设为false

如下:

Dim

fir

As

New

Form2

fir.TopLevel

=

false

Me.Panel1.Controls.Add(fir)

图片尺寸不一样。Panel是面板,是一个很少直接使用的基本组件,或者继承重写,或者用来组织其他组件。panel添加图片显示不全,是有的图片的尺寸是不一样的,在这个组件中,是无法进入的,也就在里面添加不上去。

您好,首先指出代码中一些不好的用法,比如:setLayout(null),

在我的java 1.4.2的环境中编译会出错。

实际上,应该使用this.getContentPane().setLayout()

这是JFrame和Frame不同的地方。

另外,在swing里面,也不推荐使用setVisible()来显示窗口,而应该使用show()

在我这里运行正常的代码如下:

/*

* Created on 2005-3-3

*

* TODO To change the template for this generated file go to

* Window - Preferences - Java - Code Style - Code Templates

*/

package com.ubi.config.demo

import java.awt.*

import java.awt.event.*

import javax.swing.*

public class aaa extends JFrame

{

aaa()

{

P1 p1=new P1()

P2 p2=new P2()

this.getContentPane().setLayout(null)

setBounds(200,200,500,300)

p1.setBounds(0,0,400,300)

getContentPane().add(p1)

p2.setBounds(400,0,100,300)

getContentPane().add(p2)

}

public static void main(String[] args)

{

aaa test=new aaa()

test.show()

}

//================================================

class P1 extends JPanel

{

P1()

{

btStart=new JButton( "111 ")

add(btStart)

}

private JButton btStart

}

class P2 extends JPanel

{

P2()

{

btStart=new JButton( "222 ")

add(btStart)

}

private JButton btStart

}

}//:-)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7878018.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存