一个小问题:怎么在text控件中实现改写方式?

weill 2003-10-21 10:07:46
我知道,在标准的text控件中(以及其它VB的输入控件中)输入字符时,只能以插入的方法输入(Insert键是无效的)。我想知道,怎样才能实现以改写的方式输入。
要求给出使输入变成改写方式和使输入变回插入方式的代码。
在这儿先谢谢大家,原则上不拆分,分给给出最符合要求和最先给出答案的朋友。
...全文
32 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
weill 2003-10-21
  • 打赏
  • 举报
回复
最后再次改进:
Private Sub MaskEdBox1_GotFocus()
MaskEdBox1.SelLength = 1
End Sub

Private Sub MaskEdBox1_KeyDown(KeyCode As Integer, Shift As Integer)
If (KeyCode >= 37 And KeyCode <= 40) And MaskEdBox1.SelStart > 0 Then
MaskEdBox1.SelStart = MaskEdBox1.SelStart - 1
End If
MaskEdBox1.SelLength = 1
End Sub

这样就比较好了,在这儿我用的是MaskEdBox控件,text控件上应也一样。
谢谢rainstormmaster提供思路。
weill 2003-10-21
  • 打赏
  • 举报
回复
和和,答案是基本令人满意的,我看看有没有别的人有更好的主意,如果没有,下午5:00前结贴:)。
weill 2003-10-21
  • 打赏
  • 举报
回复
和和,那么简单的程序,我能看懂:)。下面你那个回答可以不用咯。
我稍改造了一下:
Private Sub Text1_GotFocus()
Me.Text1.SelLength = 1
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
Me.Text1.SelLength = 1
End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 37 Then
Me.Text1.SelStart = Me.Text1.SelStart - 1
End If

Me.Text1.SelLength = 1
End Sub

Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Text1.SelLength = 1
End Sub
不过,感觉效果不是非常好,有点儿滞的。不知是不是还有别的更好的方法,比如用API,或是别的VB标准控件代替text控件。
rainstormmaster 2003-10-21
  • 打赏
  • 举报
回复
或者试试进行子类处理
rainstormmaster 2003-10-21
  • 打赏
  • 举报
回复
//基本不错,但在用左右光标键移动光标位置时,稍不令人满意

只能这样了,要不就使用第3方控件
weill 2003-10-21
  • 打赏
  • 举报
回复
基本不错,但在用左右光标键移动光标位置时,稍不令人满意。
rainstormmaster 2003-10-21
  • 打赏
  • 举报
回复
一个按钮,一个textbox:

Dim ischange As Boolean

Private Sub Command1_Click()
ischange = Not ischange
Text1.SetFocus
End Sub

Private Sub Form_Load()
ischange = False
Command1.Caption = "文本框输入状态切换"
End Sub

Private Sub Text1_GotFocus()
If ischange Then
Me.Text1.SelLength = 1
Else
Me.Text1.SelLength = 0
End If
End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
If ischange Then
Me.Text1.SelLength = 1
Else
Me.Text1.SelLength = 0
End If
End Sub

Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If ischange Then
Me.Text1.SelLength = 1
Else
Me.Text1.SelLength = 0
End If
End Sub

rainstormmaster 2003-10-21
  • 打赏
  • 举报
回复
Private Sub Text1_GotFocus()
Me.Text1.SelLength = 1
End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
Me.Text1.SelLength = 1
End Sub

Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Text1.SelLength = 1
End Sub

Part1第一部分: 相信大家找得到该书的源代码部分 也就是这部分内容 因此我便无偿奉送 让大家下载试试。 若感觉可以方可继续下载电子书部分。 1.本书1~21章所附代码的运行环境 操作系统:Windows Server 2003或Windows XP Professional 开发环境:Microsoft Visual Studio 2005 数据库:SQL Server 2005 Web服务器:IIS 5.1及以上版本 2.本书所附光盘范例 第1章(\Chapter 01) 示例描述:本章演示ASP.NET 2.0网站的预编译以及学习ASP.NET 2.0的前置知识。 WebSite文件夹 创建的ASP.NET 2.0 Web站点。 www文件夹 第一个用C#开发的Web应用程序。 bianyi.bat 编译网站的批处理文件。 form.html 表单范例。 css.html CSS范例。 第3章(\Chapter 03) 示例描述:本章介绍C# 2.0程序设计基础。 3-01.cs 第一个C#程序。 3-02.cs 不导入命名空间来改写程序3-01.cs。 3-03.cs ReadLine()方法读数据。 3-04.cs 常量的使用。 3-05.cs 整型类型的使用。 3-06.cs 结构类型的使用。 3-07.cs 枚举类型的使用。 3-08.cs 用一个输入参数通过值传递一个变量给一个方法。 3-09.cs 一维数组的使用。 3-10.cs 使用代理类型。 3-11.cs 使用接口。 3-12.cs 装箱操作。 3-13.cs 字符串操作。 3-14.cs if语句的使用。 3-15.cs switch语句的使用。 3-16.cs while语句的使用。 3-17.cs do-while语句的使用。 3-18.cs for语句的使用。 3-19.cs 异常捕获:try-catch语句的使用。 3-20.cs 异常捕获:try-finally语句的使用。 3-21.cs 异常捕获:try-catch-finally语句的使用。 3-22.cs get和set对属性的值进行读写操作。 3-23.cs 方法的使用。 3-24.cs 继承演示。 3-25.cs 多态性演示。 第4 章(\Chapter 04) 示例描述:本章学习ASP.NET 2.0页面基本对象。 4-01.aspx aspx页面添加一个Lable标签。 4-02.aspx 读出Application的属性值。 4-03.aspx 读出SessionID的值。 4-04.aspx 创建Session对象。 4-05.aspx 读取传递的Session值并显示。 4-06.aspx 使用Response对象的Write()方法。 4-07.aspx 使用Response对象的End()方法。 4-08.html 以post方式提交数据到4-08.aspx的表单。 4-08.aspx 接收表单数据并进行处理。 4

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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