C# 能不能获取文本框光标当前所在的位置,及所在的行

C# 能不能获取文本框光标当前所在的位置,及所在的行,第1张

[DllImport("user32dll", EntryPoint = "SendMessageA")]

private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, StringBuilder lParam);

[DllImport("user32 ")]

private static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);

private void button2_Click(object sender, EventArgs e)

{

int EM_LINEINDEX = 0xBB;

int EM_LINEFROMCHAR = 0xC9;

int EM_GETSEL = 0xB0;

int EM_GETLINE = 0xC4;

//通过API完成很简单的

//通过向文本框传递EM_LINEFROMCHAR消息可以得到光标所在的行数

int Row = (int)SendMessage(textBox1Handle, EM_LINEFROMCHAR, -1, 0);

////通过向文本框传递EM_GETSEL消息可以得到编辑控件中一段选定内容的起点与终点字符的个数

//int s = (int)SendMessage(textBox1Handle, EM_GETSEL, 0, 0);

////通过向文本框传递EM_GETSEL消息可以得到每一行的第一个字符在全文中的字符序号

//int li = (int)SendMessage(textBox1Handle, EM_LINEINDEX, -1, 0);

//int Col = (s & 0xffff) - li + 1;

StringBuilder currentLine = new StringBuilder(256);

SendMessage(textBox1Handle, EM_GETLINE, Row, currentLine);

MessageBoxShow(currentLineToString());

}

importjavaawt;importjavaapplet;importjavaawtevent;publicclassUseTextEventextendsAppletimplementsActionListener,TextListener{TextFieldt1;TextAreat2;Panelp1;publicvoidinit(){t1=newTextField(25);t2=newTextArea(10,25);t1addActionListener(this);t1addTextListener(this);p1=newPanel(newBorderLayout());p1add(t1,BorderLayoutNORTH);p1add(t2,BorderLayoutSOUTH);add(p1);}publicvoidtextValueChanged(TextEventt){if(tgetSource()==t1){t1setText(t1getText());t1setCaretPosition(t1getText()length());//设置输入后的长度t2setText(t1getText());}}publicvoidactionPerformed(ActionEvente){if(egetSource()==t1)t2setText("");}}这个可以使光标放在文字的后面,但是光标还是会闪动,不稳定。

$("input:focus") //光标所在input元素的位置

$("textarea:focus")//光标所在textarea元素的位置

$("input:focus,textarea:focus")//光标所在元素的位置

你可以调用WINAPI的一个函数,原型如下,hWnd就是要获取焦点的窗口(控件)句柄:

HWND WINAPI SetFocus(

  _In_opt_  HWND hWnd

);

方法一:

出现网页搜索栏无法输入,多是由于“mshtmleddll”文件丢失或损坏造成的,该文件位于“X:/windows/system32”目录下,“X”为系统盘。解决该问题只需进入正常的系统“c:\windows\system32\”目录中,拷贝“mshtmleddll”、“BROWSEUIDLL”到出现问题的system32目录下即可。

“mshtmleddll”也可以从安装光盘中抽取这个文件,将系统安装盘放入光驱后,依次展开:“开始”→“运行”→键入“cmd”→启动“命令提示符”→键入“expand X:\i386\mshtmleddl_ c:\windows\system32\mshtmleddll”,其中“X:\”是光驱盘符,然后根据本机XP安装目录位置进行更改即可。

成功拷贝或抽取后需要重新加载“mshtmleddll”、“BROWSEUIDLL”文件,方法如下:

依次展开:“开始”→“运行”→键入“regsvr32 mshtmleddll”、“regsvr32 BROWSEUIDLL”执行后即成功加载这两个文件。

方法二:

依次展开:IE浏览器→“工具”→“internet选项”→“浏览历史记录”→“删除”→“全部删除”,将其中临时文件、Cookie、历史记录等文件全部删除,点击“确认”后重新启动浏览器,即可解决网页搜索栏无法输入的问题。

方法三:

依次展开:“开始”→“运行”→键入“regsvr32 actxprxydll”→“确定”后出现“DllRegisterServer in actxprxydll succeeded”提示→“确定”,再重复“开始”→“运行”→键入“regsvr32 shdocvwdll”→“确定”后出现“DllRegisterServer in shdocvwdll succeeded”提示,→“确定”,加载这两项文件后,重新启动系统即可解决网页搜索栏无法输入的问题。

方法四:

检查电脑中的各种防护软件,如杀毒软件、防火墙等,进入软件相关设置检查是否存在输入拦截等问题,观察进程查看是否存在可疑进程,如恶意软件的屏蔽等,对全盘进行彻底的病毒查杀,依次展开:IE浏览器→“工具”→“internet选项”→“安全”,将安全级别还原为系统默认,也就是“中-高”,确认后重新启动系统,即可解决网页搜索栏无法输入的问题。

方法五:

有的系统在更新补丁时出现错误,某个系统重要文件损坏或丢失,或用户安装的某个软件导致的兼容问题,也会导致网页搜索不能进行输入的情况,对于这类问题只需重新下载系统补丁并重新更新安装,恢复系统文件,卸载最近安装的软件,重启系统后即可解决网页搜索栏无法输入的问题。

通过小编的介绍,相信用户对于网页搜索栏无法输入的问题都能找到适合的解决方法,再也无须重装系统等大费干戈的举动,解决这类问题其实很简单。

以上就是关于C# 能不能获取文本框光标当前所在的位置,及所在的行全部的内容,包括:C# 能不能获取文本框光标当前所在的位置,及所在的行、java后台编程怎么获取当前光标所在的位置,并输入一段指定的文本(或者说获取当前选中的文本框也行)、关于JavaScript 获取文本框光标的坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9653795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存