vb 选择组合框 为控件选择鼠标类型

看着代码长,其实简单在窗体画若干控件,然后画两个列表框,其中一个用来列出当前窗体上控件名称,另一个列表框列出15种鼠标形状。程序运行后,从第一个列表框选择空间或者窗体,从... 看着代码长,其实简单
在窗体画若干控件,然后画两个列表框,其中一个用来列出当前窗体上控件名称,另一个列表框列出15种鼠标形状。程序运行后,从第一个列表框选择空间或者窗体,从第二个列表框选择鼠标光标形状,为选择的控件或窗体设置所需的鼠标形状。列表框开始隐藏,双击窗体就可显示

Dim Char, know
Private Sub Form_DblClick()
List1.Visible = True
List2.Visible = True
End Sub

Private Sub Form_Load()

List1.Visible = False
List2.Visible = False

List1.AddItem "Picture1"
List1.AddItem "Command1"
List1.AddItem "Label1"
List1.AddItem "Text1"

List2.AddItem "1"
List2.AddItem "2"
List2.AddItem "3"
List2.AddItem "4"
List2.AddItem "5"
List2.AddItem "6"
List2.AddItem "7"
List2.AddItem "8"
List2.AddItem "9"
List2.AddItem "10"
List2.AddItem "11"
List2.AddItem "12"
List2.AddItem "13"
List2.AddItem "14"
List2.AddItem "15"

End Sub

Private Sub List1_Click()
Char = List1.Text
Print Char
End Sub

Private Sub List2_Click()

know = Val(List2.Text)
Print know

If Char = picture1 Then

Select Case know '这个程序有问题没解决
Case 10

Picture1.MousePointer = 10
Case 2

Picture1.MousePointer = 2
Case 11

Picture1.MousePointer = 11

End Select

End If

End Sub

这个代码不完整,但我的思路估计您应该明白了,我这么设置结果picture1的鼠标形状根本不会变,但是如果把If Char = picture1改为If Char = Text1,则可按题目要求实现,为什么呢?还有其他简便算法么?
非常感谢,调用过程可以实现

可为什么我原来的不行呢,直接char=list1.text, char.mousepointer=list2.text
这样子错在哪了,本来就是大写开头的名称,用Lcase返回成小写作用何在?
展开
 我来答
帐号已注销
2007-09-05 · TA获得超过1808个赞
知道大有可为答主
回答量:1971
采纳率:0%
帮助的人:2333万
展开全部
Dim Ch As String
Dim know As Integer
Dim flg As Boolean

Private Sub Form_DblClick()
If flg Then
List1.Visible = False
List2.Visible = False
Else
List1.Visible = True
List2.Visible = True
End If
flg = Not flg
End Sub

Private Sub Form_Load()
flg = False
List1.Visible = False
List2.Visible = False

List1.AddItem "Picture1"
List1.AddItem "Command1"
List1.AddItem "Label1"
List1.AddItem "Text1"

List2.AddItem "1"
List2.AddItem "2"
List2.AddItem "3"
List2.AddItem "4"
List2.AddItem "5"
List2.AddItem "6"
List2.AddItem "7"
List2.AddItem "8"
List2.AddItem "9"
List2.AddItem "10"
List2.AddItem "11"
List2.AddItem "12"
List2.AddItem "13"
List2.AddItem "14"
List2.AddItem "15"
End Sub

Private Sub List1_Click()
chgmp LCase(List1.Text), Val(List2.Text)
End Sub

Private Sub List2_Click()
know = Val(List2.Text)
chgmp LCase(List1.Text), know
End Sub

Public Sub chgmp(obj As String, mpn As Integer)
Select Case obj
Case "text1"
Text1.MousePointer = mpn
Case "label1"
Label1.MousePointer = mpn
Case "command1"
Command1.MousePointer = mpn
Case "picture1"
Picture1.MousePointer = mpn

End Select
End Sub

试试看能否达到你要的效果.

===============新近回答==============
不行的原因是你原来的代码中Char = Picture1应为Char = "Picture1"或Char = Picture1.name
至于Lcase只是防止出现因大小写不同而加的.用文本框输入更有用.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TableDI
2024-07-18 广告
在上海悉息信息科技有限公司,我们深知Excel在数据处理中的重要作用。在Excel中引用不同工作表(sheet)的数据是常见的操作,这有助于整合和分析跨多个工作表的信息。通过在工作表名称前加上感叹号“!”,您可以轻松地引用其他工作表中的数据... 点击进入详情页
本回答由TableDI提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式