不能实现功能,请高手指点!

xuancheng0563 2008-06-06 08:37:31
使用弹出菜单控件,
在textbox文本框中实现复制和粘贴操作。
在复制选定的字符串后,执行粘贴操作时使弹出菜单控件的复制菜单项变为灰色(即:不可用)。


vb代码如下:
Dim st$
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
Form1.PopupMenu editmenu, vbPopupMenuLeftAlign
End If
End Sub

Private Sub editcopy_Click() '复制函数
editcopy.Enabled = True
st = Text1.SelText
End Sub
...全文
96 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pjagz 2008-06-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xuancheng0563 的回复:]
楼上的朋友,注意了没,你的程序有点小问题.
就是在禁用Text1的默认菜单。
Text1.Enabled = False
Text1.Enabled = True
后,第一次操作不能实现,第二次才可用.
同时也谢你们了!
[/Quote]

'VB6 ---测试通过 没有你所说的问题。
lfywy 2008-06-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xuancheng0563 的回复:]
是vb,
editcopy.Enabled = True 使弹出菜单中复制菜单可用.因在程序开始把它禁用.
[/Quote]

C#里的也同样的意思!
pjagz 2008-06-07
  • 打赏
  • 举报
回复
'补充说明,禁用Text1的默认菜单。
Text1.Enabled = False
Text1.Enabled = True
pjagz 2008-06-07
  • 打赏
  • 举报
回复
Private Sub Form_Load()

Clipboard.Clear

End Sub

Private Sub MuCopy_Click()
'复制子菜单
Clipboard.SetText (Text1.SelText)
End Sub

Private Sub MuPast_Click()
'粘贴子菜单
Text1.SelText = Clipboard.GetText
End Sub

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 2 Then

'复制菜单名---MuCopy, 选定文本大于0则为 True
MuCopy.Enabled = Text1.SelLength > 0
'粘贴----剪帖板不为空时则为True
MuPast.Enabled = Len(Clipboard.GetText)

Text1.Enabled = False
Text1.Enabled = True
Call PopupMenu(MeuPop)

End If

End Sub

'
'VB6 ---测试通过
happy_sea 2008-06-07
  • 打赏
  • 举报
回复
补充一下,程序开始不应该禁用复制菜单,否则怎么复制?另外VB6中普通的TextBox点右键时总是先弹出系统自带的右键菜单而不是你popmenu的那个,这个问题好像可以用text1.enabled=false然后再text1.enabled=true来解决
happy_sea 2008-06-07
  • 打赏
  • 举报
回复
我还是无法理解editcopy.Enabled = True 这句,这句既然在editcopy_click事件中,如果能执行到,说明editcopy是可用的,既然可用又何必.enabled=true?
好像应该把这句换成editcopy.enabled=false,然后在粘贴菜单的点击事件中再editcopy.enabled=true
xuancheng0563 2008-06-07
  • 打赏
  • 举报
回复
楼上的朋友,注意了没,你的程序有点小问题.
就是在禁用Text1的默认菜单。
Text1.Enabled = False
Text1.Enabled = True
后,第一次操作不能实现,第二次才可用.
同时也谢你们了!
xuancheng0563 2008-06-06
  • 打赏
  • 举报
回复
是vb,
editcopy.Enabled = True 使弹出菜单中复制菜单可用.因在程序开始把它禁用.
happy_sea 2008-06-06
  • 打赏
  • 举报
回复
这好像不是.net的代码吧?
貌似editcopy就是那个复制菜单?
editcopy.enabled=true这句是什么意思?

16,717

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧