vb怎么使一个已经存在的窗体变为父窗体

如题所述

你的意思是把一个普通窗体变为一个MDI主窗体?这个办不到的,干儿子可以乱认,亲爹可不是随便找个人就能当的。API函数SetParent可以把一个窗体插入到另一个窗体中,但这只是一个畸形的复合体,不是真正意义上的父窗体,充其量只能算是干爹窗体。追问

用show的模式显示可以吗?

追答

show只能决定打开窗体是模态还是非模态,无法改变被打开窗体与原窗体之间的包含关系的。

追问

那怎么样使数据库的表名显示到datalist控件中啊?

追答

datalist控件只能显示某个表中某个字段的内容,不能显示表名的。你可以用一个普通的list控件,然后遍历数据库中所有表名并显示到list中:

Private Sub Command1_Click()
Dim conn As Object, rs As Object
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\mydb.mdb" '数据库文件名,自己改
Set rs = conn.OpenSchema(20)
List1.Clear
Do Until rs.EOF
If rs("table_type") = "TABLE" Then
List1.AddItem rs("table_name")
End If
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
End Sub

追问

select name from sysobjects where type like 'U ' and name 'dtproperties ' order by name
用不到这句代码吗? 遍历数据库的所有表名

追答

你的貌似是MSSQL数据库吧?我没用过。我的是ACCESS数据库

追问

我在vb中用的也是ACCESS数据库 就是想加载窗体的时候把数据库的所有表名列出来 通过单击把指定表的所有记录显示在datagrid控件里面

追答

那你用我的代码就行了,我试过可以的。把第一行 Private Sub Command1_Click() 改为 Private Sub Form_Load() 即可

追问

我刚试了 确实能把表名显示在list控件中 可是datagrid控件里面不显示具体的记录啊

追答

那个代码就要你自己写了,我又不知道你的数据库结构,没法写。

Private Sub List1_Click()
'你的代码写在这里。List1.Text就是你点的那个表名
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-06
父窗体改变不了的,如果你想改变启动顺序的话可以先在里面加载资源文件,通过一个按钮生成一个新的exe文件,新程序用你想改变的启动顺序就可以了,
第2个回答  2012-06-06
百度API SetParent
相似回答