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

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

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

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

如下:

Dim

fir

As

New

Form2

fir.TopLevel

=

false

Me.Panel1.Controls.Add(fir)

您好,首先指出代码中一些不好的用法,比如: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

}

}//:-)

对每个添加的控件的Position进行修正,好的布局不但要整齐,还要互相之间留有一定的空当 比如label的Position。X可以是10,而不是0,他的宽度可以是80 那么如果要TextBox和label留有距离,可以TextBox。Position。X = 10 + 80 + 10

记得采纳啊


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存