以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  OpenQQ能否按回车发送弹窗消息  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=115007)

--  作者:zoudezhao
--  发布时间:2018/2/27 17:28:00
--  OpenQQ能否按回车发送弹窗消息
如题,因为只有Send 才能激活事件 如果想默认弹窗不知道该怎么做,总是自己加{!} 或者点弹窗发送相对于来说有些麻烦   能否默认发送弹窗信息。
--  作者:有点甜
--  发布时间:2018/2/27 17:56:00
--  

思路1:输入信息的时候,给信息加入{!}的字符

 

全局代码

 

Public Sub textbox_TextChanged(sender As object, e As EventArgs)
If sender.text.startswith("{!}") = False Then
    sender.text = "{!}" & sender.text
    sender.SelectionStart = sender.text.length
    sender.SelectionLength = 1
End If
End Sub

 

打开聊天窗口代码

 

QQClient.OpenChatWindow()
Dim frm As windows.forms.form = Application.OpenForms("frmTalker")
If frm IsNot Nothing Then
    Dim obj = frm.controls("SplitContainer1")
    Dim edit As windows.forms.textbox = obj.panel2.controls("C1DockingTab2").controls("C1DockingTabPage3").controls("SplitContainer2").panel2.controls("txtSender")
    Addhandler edit.textchanged, addressof textbox_textchanged
End If


--  作者:有点甜
--  发布时间:2018/2/27 18:05:00
--  

思路2:类似思路1,在聊天窗口加入一个按钮【弹出发送】,然后绑定click事件,当点击按钮的时候,给文本框加上{!}的字符,然后触发发送按钮。

 

思路3:类似思路1,给文本框绑定keydown事件,如果触发 alt+enter,就弹出发送。

 

全局代码

 

Public Sub textBox1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs)
If e.alt AndAlso e.KeyCode = Keys.Enter Then
    If sender.text.startswith("{!}") = False Then
        sender.text = "{!}" & sender.text
        sender.parent.Controls("btnSend").PerformClick
    End If
End If
End Sub

 

打开聊天窗口

 

QQClient.OpenChatWindow()
Dim frm As windows.forms.form = Application.OpenForms("frmTalker")
If frm IsNot Nothing Then
    Dim obj = frm.controls("SplitContainer1")
    Dim edit As windows.forms.textbox = obj.panel2.controls("C1DockingTab2").controls("C1DockingTabPage3").controls("SplitContainer2").panel2.controls("txtSender")
    Addhandler edit.keydown, addressof textBox1_KeyDown
End If


--  作者:zoudezhao
--  发布时间:2018/2/28 8:52:00
--  

好的感谢甜老师