如何实现在TextBox中如何得知Caret所在位置

原创 2001年01月08日 21:09:00
 

'在form中放一个textBox两个label

Const EM_GETSEL = &HB0

Const EM_LINEFROMCHAR = &HC9

Const EM_LINEINDEX = &HBB

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _

(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _

lParam As Any) As Long

Public Sub GetCaretPos(ByVal hwnd5 As Long, LineNo As Long, ColNo As Long)

Dim i As Long, j As Long

Dim lParam As Long, wParam As Long

Dim k As Long

i = SendMessage(hwnd5, EM_GETSEL, wParam, lParam)

j = i / 2 ^ 16 '取得目前Caret所在前面有多少个byte

LineNo = SendMessage(hwnd5, EM_LINEFROMCHAR, j, 0) '取得前面有多少行

LineNo = LineNo + 1

k = SendMessage(hwnd5, EM_LINEINDEX, -1, 0)

'取得目前caret所在行前面有多少个byte

ColNo = j - k + 1

End Sub

Private Sub Form_Load()

Dim LineNo As Long, ColNo As Long

Call GetCaretPos(Text1.hwnd, LineNo, ColNo)

Label1.Caption = LineNo

Label2.Caption = ColNo

End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)

Dim LineNo As Long, ColNo As Long

Call GetCaretPos(Text1.hwnd, LineNo, ColNo)

Label1.Caption = LineNo

Label2.Caption = ColNo

End Sub

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

Dim LineNo As Long, ColNo As Long

Call GetCaretPos(Text1.hwnd, LineNo, ColNo)

Label1.Caption = LineNo

Label2.Caption = ColNo

End Sub

如何获得textBox当前光标位置

 今天要做一个获得textbox光标的位置,由于做的不是winform程序,而是webform程序,所以光标位置就不好取了,参考网上的一些程序最后javascript去实现,其代码如下: functi...
  • fanfengchimo
  • fanfengchimo
  • 2007年08月12日 13:25
  • 1901

C#实现在数组中插入1-100的随机数

面试原题:实现填充1-100到一个容器为100的数组中,数组只可以定义一个。         这是我上半年面试时遇到的一道题,当时第一次遇到就做出来,很有成就感,面试官现场给了我五分钟 ,花了三分钟想...
  • pfe_Nova
  • pfe_Nova
  • 2013年09月30日 19:28
  • 6354

如何实现在PHP中调用JAVA

PHP与JAVA  JAVA是个非常强大的编程利器,它的扩展库也是非常的有用,这篇教程,主要讲述怎样使用PHP调用功能强大的JAVA 类库(classes)。为了方便你的学习,这篇教程将包括JA...
  • qq_16542455
  • qq_16542455
  • 2016年08月25日 18:03
  • 124

如何实现在java中实现右键菜单

这篇文件仍然是在CSDN的java没有找到相关资料的情况下而写,希望这篇文章能帮各位兄弟省点时间。在java中使实现右键菜单十分简单,只需用到一个控件:PopupMenu.首先,需要声明一个Popup...
  • tawalisa
  • tawalisa
  • 2006年05月15日 16:34
  • 759

安卓中Toast如何实现在中间

一般来说我们如果写一个吐司他是在下方显示的  但是如果我们想让他在中间显示怎么办呢? Toast toast = Toast.makeText(getActivity()...
  • lengqingxue
  • lengqingxue
  • 2017年07月20日 09:43
  • 222

caret包应用之二:特征选择

原文地址:http://xccds.github.io/2011/09/caret_24.html/ 在进行数据挖掘时,我们并不需要将所有的自变量用来建模,而是从中选择若干最重要的变量,这称为特征选...
  • jiabiao1602
  • jiabiao1602
  • 2015年05月13日 10:20
  • 1882

R语言利用caret包对变量重要程度排序与选择特性

说明得到监督模型后,我们可以改变输入值,比较给定模型输出效果的变化敏感程度来评估不同特征对模型的的重要性。使用caret包完成特征的筛选...
  • dingming001
  • dingming001
  • 2017年06月08日 08:46
  • 1867

Android-隐藏app动作栏

创建Android项目,实现隐藏程序动作栏的功能。ActionBar(动作栏)是一种窗体特性,它标示应用和用户位置,并提供用户动作和导航模式。大多数情况下需要显示用户动作或全局导航的Activity中...
  • eva1994
  • eva1994
  • 2016年03月17日 14:03
  • 388

redhat/centos安装caret包失败

我的redhat用的是centos源,跟centos情况应该差不多。R提示我以下这些以来包安装失败 ‘car’‘nloptr’, ‘lme4’, ‘pbkrtest’‘minqa’理清依赖关系,最...
  • q1w2e3r4470
  • q1w2e3r4470
  • 2016年08月28日 10:02
  • 932

R语言之-caret包应用

因原文可能要翻墙才能阅读,故转来此地,希望对想研究caret包的童靴有帮助。 caret包应用之一:数据预处理:http://xccds1977.blogspot.hk/2011/09/caret....
  • jiabiao1602
  • jiabiao1602
  • 2015年04月10日 10:14
  • 9931
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何实现在TextBox中如何得知Caret所在位置
举报原因:
原因补充:

(最多只允许输入30个字)