大佬教程收集整理的这篇文章主要介绍了使DHTMLEd控件的代码用直线引号替换直线引号,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想修改应用程序来实现Word的智能引号.具体来说,“被替换为”或“,”被替换为“或”,因为它被输入;如果用户在更换后立即按Ctrl Z,则可以回到直接引用.@H_197_3@
有人有代码吗?@H_197_3@
如果您没有DHTML / VB6的代码,但确实有JavaScript代码可以在具有contentEditable区域的浏览器中使用,我也可以使用它@H_197_3@
Private Sub DHTMLEdit1_onkeypress() Dim e As Object Set e = DHTMLEdit1.DOm.parentWindow.event 'Perform smart-quote replacement' SELEct Case e.keyCode Case 34: 'Double-Quote' e.keyCode = 0 If IsAtWordEnd Then InsertDoubleUndo ChrW$(8221),ChrW$(34) Else InsertDoubleUndo ChrW$(8220),ChrW$(34) End If Case 39: 'Single-Quote' e.keyCode = 0 If IsAtWordEnd Then InsertDoubleUndo ChrW$(8217),ChrW$(39) Else InsertDoubleUndo ChrW$(8216),ChrW$(39) End If End SELEct End Sub Private Function IsLetter(ByVal character As String) As Boolean IsLetter = UCase$(character) <> LCase$(character) End Function Private Sub InsertDoubleUndo(VisibleText As String,Hiddentext As String) Dim SELEction As Object Set SELEction = DHTMLEdit1.DOm.SELEction.createRange() SELEction.Text = Hiddentext SELEction.moveStart "character",-Len(Hiddentext) SELEction.Text = VisibleText End Sub Private Function IsAtWordEnd() As Boolean Dim ch As String ch = PreviousChar IsAtWordEnd = (ch <> " ") And (ch <> "") End Function Private Function PreviousChar() As String Dim SELEction As Object Set SELEction = m_dom.SELEction.createRange() SELEction.moveStart "character",-1 PreviousChar = SELEction.Text End Function
注意:此解决方案在撤销链中插入一个附加级别.例如,键入“这是一个测试”给出了一个“这是一个测试” – > “这是一个测试” – >“这是一个测试 – >” – >“(额外的粗体).要删除这个额外的级别,你必须实现某种Postmessage子类化解决方案,它不涉及取消本机按键@H_197_3@
编辑:如果您定位到Windows Vista,请不要忘记包含DHTML Editing Control redistributable.@H_197_3@
以上是大佬教程为你收集整理的使DHTMLEd控件的代码用直线引号替换直线引号全部内容,希望文章能够帮你解决使DHTMLEd控件的代码用直线引号替换直线引号所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。