VB ……数组,不允许作为对象模块的public 成员

以下代码摘自某教材的关于MDL窗体那一章,我原封不动的copy的,编译时,出现如题的对话框,请问该如何解决,能否帮忙写个解决问题的代码?多谢。PublicCountFor... 以下代码摘自某教材的关于MDL窗体那一章,我原封不动的copy的,编译时,出现如题的对话框,请问该如何解决,能否帮忙写个解决问题的代码?多谢。

Public CountForm As Integer '新建窗体计数
Public FileState(10) As Integer '窗体状态
Public document(10) As New frmchild '窗体对象数组

Private Sub MDIForm_Load()
CountForm = 1
End Sub

Private Sub mnuNew_Click()
'菜单,创建新的编辑区
document(CountForm).Tag = CountForm
document(CountForm).Caption = "无标题: " & CountForm
document(CountForm).Show
CountForm = CountForm + 1
End Sub

Private Sub mnuExit_Click()
Dim strMsg As String
Dim strFileName As String

Dim intResponse As Integer
'判断文本是否被改变
For i = 1 To 10
strFileName = " "
If FileState(i) = 1 Then
strFileName = document(i).Caption
strMsg = "[" & strFileName & "]中的文本已经改变,"
strMsg = strMsg & vbCrLf
strMsg = strMsg & "希望保存吗?"
intResponse = MsgBox(strMsg, 51, MDIWrite.Caption)
Select Case intResponse
Case 6
If Left(Screen.ActiveForm.Caption, 3) = "无标题" Then
'文件未保存,获取文件名
strFileName = "无标题.txt"
strFileName = GetFileName(strFileName)
Else
'窗体标题包含打开的文件名
strFileName = Screen.ActiveForm.Caption
End If

If strFileName <> "" Then
FileState(i) = 0
MsgBox "这是保存文件的示意!"
End If
Case 7 '选择"否",卸载
Case 2 '选择"取消",卸载
End Select
End If
Unload document(i) '依次卸载窗体
Next i
End
End Sub
展开
 我来答
forestry98
推荐于2016-04-24 · TA获得超过2442个赞
知道小有建树答主
回答量:1351
采纳率:33%
帮助的人:563万
展开全部
常数、固定长度字符串、数组、自定义类型与 Declare 语句不能是对象模块中的 Public 成员

并非所有对象模块中的变量都可声明成 Public。然而,按缺省规定,过程是 Public,且 Property 过程在语法结构上可模拟变量。这个错误的起因与解决方法如下所示:

在对象模块中声明了一个 Public 常数。
虽然不能在对象模块中声明 Public 常数,但可以创建一个同名的Property Get 过程。若不能创建同名的 Property Let 或 Property Set 过程,实际上创建了一个只读属性,其用法与常数相同。

在对象模块中声明了一个 Public 类型的固定长度字符串。
可用一组 Property 过程仿真固定长度字符串,并截掉超出长度的字符串数据,或通知用户超出长度。

在对象模块中声明了一个 Public 数组。
虽然过程不能返回数组,但可返回一个包含数组的 Variant。要仿真类模块中的 Public 数组,可用一组Property 过程,它们接受与返回包含数组的 Variant 。

在对象模块中放了一个 Declare 语句。
Declare 语句隐含着公用的意思,可在 Declare 语句之前加上一个 Private 关键字。
追问
这个答案是在百度中能搜到的,对我来说没用,因为我看不懂,我是初学者。
gxl66612
2012-08-03 · TA获得超过157个赞
知道答主
回答量:127
采纳率:0%
帮助的人:29.4万
展开全部
Declare 语句之前加上一个 Private 关键字

一般是声明出错!
例如你的API声明为Declare Function FindWindowEx Lib "user32.........xA" 就不行
改为Private Declare Function FindWindowEx Lib "user32.........xA就行了!yeh!!我也是新手!别人的回答里面最后一句才是重点!我晕
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
anrnhv
2011-03-10
知道答主
回答量:26
采纳率:0%
帮助的人:0
展开全部
eclare 语句不能是对象模块中的 Public 成员

并非所有对象模块中的变量都可声明成 Public。然而,按缺省规定,过程是 Public,且 Property 过程在语法结构上可模拟变量。这个错误的起因与解决方法如下所示:

在对象模块中声明了一个 Public 常数。
虽然不能在对象模块中声明 Public 常数,但可以创建一个同名的Property Get 过程。若不能创建同名的 Property Let 或 Property Set 过程,实际上创建了一个只读属性,其用法与常数相同。

在对象模块中声明了一个 Public 类型的固定长度字符串。
可用一组 Property 过程仿真固定长度字符串,并截掉超出长度的字符串数据,或通知用户超出长度。

在对象模块中声明了一个 Public 数组。
虽然过程不能返回数组,但可返回一个包含数组的 Variant。要仿真类模块中的 Public 数组,可用一组Property 过程,它们接受与返回包含数组的 Variant 。

在对象模块中放了一个 Declare 语句。
Declare 语句隐含着公用的意思,可在 Declare 语句之前加上一个 Private 关键字。
追问
这个答案是在百度中能搜到的,对我来说没用,因为我看不懂,我是初学者。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式