小组作业急需一vb强人帮忙修改一个简单程序
一个名为txtEdit的富文本框。
在句中会车换行,像这样:
Private Function strLeft(str As String, nLen As Long) As String
If nLen <= 0 Then
strLeft = " "
Else
strLeft = Left(str, nLen)
End If
End Function
Private Sub txtEdit1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Dim lSelPos As Long
lSelPos = txtEdit.SelStart
txtEdit.Text = strLeft(txtEdit.Text, txtEdit.SelStart) & vbCrLf & "
" & LTrim(Mid(txtEdit.Text, txtEdit.SelStart + 1))
txtEdit.SetFocus
txtEdit.SelStart = lSelPos
KeyAscii = 0
End If
End Sub
在句末按回车键时则跳到下一行,并在开头空两格,像这样的效果:
Private Sub txtEdit_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
KeyAscii = 0
txtEdit.Text = txtEdit.Text & vbCrLf & " "
txtEdit.SelStart = Len(txtEdit.Text)
End If
End Sub
现在如何把上述两个条件整合起来,我发现这两段程序不能并存。
另外,在一句话当中光标所在位置插入字怎么办?比如一按按钮cmd1,就在光标处插入“cmd1”字符串。以及选中任一段文字,可以直接打字上去替换这段文字。
其实也就是把windows记事本的基本编辑操作在富文本框上实现。
上述问题请一一解答。
[解决办法]
1. strLeft函数完全多余, txtEdit.SelStart是不会小于0的
2. 另外,在一句话当中光标所在位置插入字怎么办?比如一按按钮cmd1,就在光标处插入“cmd1”字符串。以及选中任一段文字,可以直接打字上去替换这段文字。
Private Sub Command1_Click()
txtEdit.SelText = "cmd1 "
txtEdit.SetFocus
End Sub