精华内容
参与话题
问答
  • 作者:孟宪会 微软MVPTest.csusing System;using System.Drawing;using System.Windows.Forms;using System.Runtime.InteropServices;using System.Reflection;namespace ColorCursor{ public class Form1 : System...

    作者:孟宪会 微软MVP

    Test.cs

    using System;
    using System.Drawing;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    using System.Reflection;

    namespace ColorCursor
    {
      public class Form1 : System.Windows.Forms.Form
     {
      [DllImport("user32.dll")]
      public static extern IntPtr LoadCursorFromFile( string fileName );
      
      [DllImport("user32.dll")]
      public static extern IntPtr SetCursor( IntPtr cursorHandle );
      
      [DllImport("user32.dll")]
      public static extern uint DestroyCursor( IntPtr cursorHandle );
      
      
      [STAThread]
      static void Main()
      {
      Application.Run(new Form1());
      }
      
      public Form1()
      {
      this.Text = "欢迎光临21世纪asp.net技术网:http://www.21asp.net/";
      Cursor myCursor = new Cursor(Cursor.Current.Handle);
      //dinosau2.ani为windows自带的光标:
      IntPtr colorCursorHandle = LoadCursorFromFile(@"C:/WINNT/Cursors/dinosau2.ani" );
      myCursor.GetType().InvokeMember("handle",BindingFlags.Public |
       BindingFlags.NonPublic | BindingFlags.Instance |
       BindingFlags.SetField,null,myCursor,
       new object [] { colorCursorHandle } );
      this.Cursor = myCursor;
      }
     }
    }

    展开全文
  • 如何调出cmd光标(cmd输入光标消失)

    万次阅读 多人点赞 2019-09-24 09:55:02
    windows下,在输入中文后,按shift,拼音变成英文的同时,光标出现。

    windows下,在输入中文后,按shift,拼音变成英文的同时,光标出现。

    展开全文
  • QT QLineEdit光标问题

    2015-08-26 12:17:36
    继承QLineedit类,重写Fousinevent和Focusoutevent判断在哪个文本框编辑,可是两个文本框都有光标在闪![图片说明](https://img-ask.csdn.net/upload/201508/26/1440591373_695517.png) 类中的两个事件代码是: void ...
  • 最近在做一评论功能,需要能够评论表情,那...这个好说… 但是清空完了内容,光标居然跑到了最前面,这就很头疼了。 在经过各种搜索之后,找到了解决办法,不多说,上代码! var _div = document.querySelector('.di...

    最近在做一评论功能,需要能够评论表情,那 contentEditable 这个属性就首当其冲了,结果,问题来了…

    首先 评论区 长这样:
    img
    当输入内容超过限制的时候,清空用户输入超过限制后的内容。
    这个好说… 但是清空完了内容,光标居然跑到了最前面,这就很头疼了。

    在经过各种搜索之后,找到了解决办法,不多说,上代码!

    var _div = document.querySelector('.discuss_area');
    var range = document.createRange();
    
    range.selectNodeContents(_div);
    range.collapse(false);
    
    var sel = window.getSelection();
    sel.removeAllRanges();
    sel.addRange(range);
    

    全部都是使用原生事件,因此不能使用jQuery对象。
    完事,收工~

    展开全文
  • js获取光标位置

    万次阅读 多人点赞 2017-11-13 13:21:14
    js获取光标位置1.概念和原理DOM中并没有直接获取光标位置的方法,那么我们只能间接来获取光标位置。DOM支持获取光标选中的范围,我们可以以此为切入点,来获取或定位光标的位置。当选取范围起始点和结束点一样时,...

    js获取光标位置

    1.概念和原理

    DOM中并没有直接获取光标位置的方法,那么我们只能间接来获取光标位置。DOM支持获取光标选中的范围,我们可以以此为切入点,来获取或定位光标的位置。当选取范围起始点和结束点一样时,就是光标插入的位置。

    1.1 术语

    anchor(瞄点):选区起点。

    focus(焦点):选区终点。

    range(范围):选区范围,包含整个节点或节点的一部分。

    1.2 Selection

    Selection:Selection对象表示用户选择的文本范围或插入符号的位置。

    经过实验发现Selection选取的节点范围都是块级节点。input和texteare并不能作为Selection的节点

    Selection对象存在于window对象上,可以通过window.getSelection()获取示例。

    属性:

    anchorNode:选区起点的节点。

    anchorOffset:选区的起点位置。

    focusNode:选区终点的节点。

    focusOffset:选区的终点位置。

    isCollapsed:起点和终点是否重叠。

    rangeCount:选区包含的range数目。

    方法

    getRangeAt(index):获取指定的选取范围。

    addRange(range):将一个范围添加到Selection对象中。

    removeRange():移出指定的范围。

    removeAllRanges():移出所有range对象。

    collapse(parentNode,offset):将光标移动到parentNode节点的offset位置。

    collapseToStart():取消当前选区,并把光标定位在原选区的最开始处,如果此时光标所处的位置是可编辑的,且它获得了焦点,则光标会在原地闪烁。

    collapseToEnd():取消当前选区,并将光标定位到原选取的最末位。如果此时光标所处的位置是可编辑的,且它获得了焦点,则光标会在原地闪烁。

    extend(node,offset):将终点位置移动到node节点的offset位置。

    modify(alter,direction,granularity):通过alter方式(move/extend)来改变光标位置,移动方向为direction(left/right),移动单位为granularity

    containsNode(aNode,aPartlyContained):判断aNode是否包含在Selection中。aPartlyContained为false表示全包含,为true表示只要部分包含即可。

    toString():放回当前Selection对象的字符串。

    1.3 Range

    Range对象表示一个Selection的选择范围,一个Selection可以包含多个Range

    获取对象

    document.createRange():创建一个Range。

    selection.getRangeAt(index):获取指定的Range。

    属性

    collapsed:判断起始位置是否重合。

    endContaniner:range终点节点。

    endOffset:range的终点位置。

    startContaniner:ranstartge起点节点。

    startOffset:range的起点位置。

    commonAncestorContainer:包含起始点的节点。

    方法

    setStart(startNode,startOffset):设置范围在startNode的起始位置为startOffset。

    setEnd(endNode,endOffset):设置范围在endNode的起始位置为endOffset。

    selectNode(referenceNode):设置range的节点为referenceNode。

    selectNodeContents(referenceNode):设置range的内容为referenceNode。

    collapse(toStart):向边界点折叠range,即是设置光标位置,toStart默认为false,表示光标定位在节点末尾。true表示光标定位在节点起点。

    cloneContents():克隆一个range的内容片段。

    deleteContents():删除range的内容片段。

    extractContents():将range的内容从文档树移动到文档片段中。

    insertNode(newNode):在range的其实位置插入新的节点。

    surroundContents(newNode):将range对象的内容移动到新的节点中。

    cloneRange():克隆一个range对象。

    detach():释放当前range。

    1.4 input/textarea

    在html5中,可输入性表单元素(input/textarea)都存在以下属性。不支持IE6/7。

    • selectionDirection:forward | backward | none,选区方向
    • selectionEnd:选区终点位置
    • selectionStart:选区起点位置

    setSelectionRange(selectionStart, selectionEnd, [selectionDirection]):设置获取焦点的输入性元素的选区范围。

    2.获取光标位置

    2.1 可编辑div获取光标位置

    //获取当前光标位置
    const getCursortPosition = function (element) {
      var caretOffset = 0;
      var doc = element.ownerDocument || element.document;
      var win = doc.defaultView || doc.parentWindow;
      var sel;
      if (typeof win.getSelection != "undefined") {//谷歌、火狐
        sel = win.getSelection();
        if (sel.rangeCount > 0) {//选中的区域
          var range = win.getSelection().getRangeAt(0);
          var preCaretRange = range.cloneRange();//克隆一个选中区域
          preCaretRange.selectNodeContents(element);//设置选中区域的节点内容为当前节点
          preCaretRange.setEnd(range.endContainer, range.endOffset);  //重置选中区域的结束位置
          caretOffset = preCaretRange.toString().length;
        }
      } else if ((sel = doc.selection) && sel.type != "Control") {//IE
        var textRange = sel.createRange();
        var preCaretTextRange = doc.body.createTextRange();
        preCaretTextRange.moveToElementText(element);
        preCaretTextRange.setEndPoint("EndToEnd", textRange);
        caretOffset = preCaretTextRange.text.length;
      }
      return caretOffset;
    }

    获取光标的位置是先通过获取鼠标的选取范围,然后克隆该选取范围,修改克隆范围的结束位置,这样克隆的范围就只剩下起点到结束点的内容,光标之后的内容被截取扔掉了。所以可以通过剩余内容的长度来确定光标位置。之所以要克隆一个选取范围出来,是为了避免修改光标结束位置时影响到原先内容。

    2.2 input/textarea获取光标位置

    //输入框获取光标
    const getPosition = function (element) {
        let cursorPos = 0;
        if (document.selection) {//IE
            var selectRange = document.selection.createRange();
            selectRange.moveStart('character', -element.value.length);
            cursorPos = selectRange.text.length;
        } else if (element.selectionStart || element.selectionStart == '0') {
            cursorPos = element.selectionStart;
        }
        return cursorPos;
    }

    3.设置光标位置

    3.1 可编辑div设置光标位置

    //设置光标位置
    const setCaretPosition = function (element, pos) {
      var range, selection;
      if (document.createRange)//Firefox, Chrome, Opera, Safari, IE 9+
      {
        range = document.createRange();//创建一个选中区域
        range.selectNodeContents(element);//选中节点的内容
        if(element.innerHTML.length > 0) {
          range.setStart(element.childNodes[0], pos); //设置光标起始为指定位置
        }
        range.collapse(true);       //设置选中区域为一个点
        selection = window.getSelection();//获取当前选中区域
        selection.removeAllRanges();//移出所有的选中范围
        selection.addRange(range);//添加新建的范围
      }
      else if (document.selection)//IE 8 and lower
      {
        range = document.body.createTextRange();//Create a range (a range is a like the selection but invisible)
        range.moveToElementText(element);//Select the entire contents of the element with the range
        range.collapse(false);//collapse the range to the end point. false means collapse to end rather than the start
        range.select();//Select the range (make it the visible selection
      }
    }

    3.2 input/textarea获取光标位置

    // 设置光标位置
    function setCaretPosition(textDom, pos){
        if(textDom.setSelectionRange) {
            // IE Support
            textDom.focus();
            textDom.setSelectionRange(pos, pos);
        }else if (textDom.createTextRange) {
            // Firefox support
            var range = textDom.createTextRange();
            range.collapse(true);
            range.moveEnd('character', pos);
            range.moveStart('character', pos);
            range.select();
        }
    }

    4.示例

    <html>
    
    <head>
      <title>光标测试</title>
      <style>
        p {
          display: flex;
          flex-direction: row;
        }
    
        .btn {
          height: 24px;
          margin: 0 10px;
        }
    
        .edit-div {
          display: inline-block;
          width: 225px;
          border: 1px solid #decdcd;
        }
      </style>
      <script>
    
        function getCursortPosition(e) {
          var eleP = e.target.parentNode; //获取父级元素
          var pos = 0;
          if (e.target.nodeName == "DIV") {
            pos = getDivPosition(e.target);
          } else {
            pos = getPosition(e.target);
          }
    
          var spanEle = (eleP.childNodes)[7];
          spanEle.innerText = pos;
        }
    
        //可编辑div获取坐标
        const getDivPosition = function (element) {
          var caretOffset = 0;
          var doc = element.ownerDocument || element.document;
          var win = doc.defaultView || doc.parentWindow;
          var sel;
          if (typeof win.getSelection != "undefined") {//谷歌、火狐
            sel = win.getSelection();
            if (sel.rangeCount > 0) {//选中的区域
              var range = win.getSelection().getRangeAt(0);
              var preCaretRange = range.cloneRange();//克隆一个选中区域
              preCaretRange.selectNodeContents(element);//设置选中区域的节点内容为当前节点
              preCaretRange.setEnd(range.endContainer, range.endOffset);  //重置选中区域的结束位置
              caretOffset = preCaretRange.toString().length;
            }
          } else if ((sel = doc.selection) && sel.type != "Control") {//IE
            var textRange = sel.createRange();
            var preCaretTextRange = doc.body.createTextRange();
            preCaretTextRange.moveToElementText(element);
            preCaretTextRange.setEndPoint("EndToEnd", textRange);
            caretOffset = preCaretTextRange.text.length;
          }
          return caretOffset;
        }
    
        //输入框获取光标
        const getPosition = function (element) {
          let cursorPos = 0;
          if (document.selection) {//IE
            var selectRange = document.selection.createRange();
            selectRange.moveStart('character', -element.value.length);
            cursorPos = selectRange.text.length;
          } else if (element.selectionStart || element.selectionStart == '0') {
            cursorPos = element.selectionStart;
          }
          return cursorPos;
        }
      </script>
    </head>
    
    <body>
      <p>
        <label>输入框测试:</label>
        <input type="text" style="width:220px" onclick="getCursortPosition(event);" />
        <span>光标位置:</span>
        <span></span>
      </p>
      <p>
        <label>文本框测试:</label>
        <textarea rows="5" style="width:220px" onclick="getCursortPosition(event);"></textarea>
        <span>光标位置:</span>
        <span></span>
      </p>
      <div>
        <label>可编辑div:</label>
        <div contenteditable="true" class="edit-div" onclick="getCursortPosition(event);"></div>
        <span>光标位置:</span>
        <span></span>
      </div>
    </body>
    
    </html>

    效果图:

    这里写图片描述

    展开全文
  • css3 实现十字光标光标外圆圈环绕

    千次阅读 2017-07-18 14:46:21
    实现十字光标其实很简单,用更原始的方法也可以实现,本例使用伪类:after和:before来进行定位实现。 第二个案例鼠标悬停,所有的外圆的一圈点会跟随着一个一个的变动颜色, 在鼠标悬停上后,会一个一个的变成蓝色...
  • **上面这段代码研究了两天,终于知道是干什么的了,就是当点击EditText时,自动将光标定位到点击的位置,虽然知道代码的作用了,但是原理还是看不懂: getX()、getY()、getTotalPaddingLeft()、getTotalPaddingTop...
  • android:textCursorDrawable="@drawable/color_cursor" ...设置上面的属性以后edittext得到焦点后要输入一下才能显示光标 但如果设置 android:textCursorDrawable="@null" 显示就正常,想请问一下这个问题怎么解决?
  • 我查相关资料,使用如下的代码,可以还是没有实现,闪烁的光标依然存在。 private class MyOnKeyListener implements OnKeyListener { public boolean onKey(View v, int keyCode, KeyEvent event) { if ...
  • 请问如何实现如新浪微博的输入框那样,他的输入框里的@xxx语句,光标是点不到中间去的,而且他这个应该就是文字设置的颜色,不是转化成图片来显示的,因为还支持换行。 我现在的需求就和新浪微博这个@xxx一样,要...
  • !... 自己写了个学生管理系统,然后在网上看到了这张。。然后瞬间感觉碉堡了。。 它的箭头指向是怎么实现的啊?用了二维数组还是用gotoxy函数啊?...移动后按enter又出现新的选项光标怎么实现?怎么返回??
  • 为什么我把EditText里面的内容删完后,光标就不见了?有没有人知道怎么回事呀,谢谢~ 代码如下: xml的 android:id="@+id/edit" android:layout_width="wrap_content" android:layout_height="wrap_...
  • EditText 不显示光标 光标消失

    千次阅读 2017-06-20 11:00:36
    解决方法有以下3种 1.在Edittext中加入以下属性 android:cursorVisible="true" android:textCursorDrawable="@null"12 2.在Edittext中加入以下属性 android:cursorVisible="true" android:textCursorDrawable="@...
  • cocos2d-x带光标的输入框

    千次下载 热门讨论 2012-05-16 14:50:33
    封装cocos2d-x中的CCTextFieldTTF为带光标的输入框
  • 怎样 隐藏光标—设置光标

    千次阅读 2017-01-28 23:45:35
    一、隐藏光标 1、引入头文件window.h 2、 定义光标信息结构体变量 CONSOLE_CURSOR_INFO cursor info={1,0};  typedef struct _CONSOLE_CURSOR_INFO  {   DWORD dwSize; // 光标百分比大小  ...
  • 转载请标明是引用于 http://blog.csdn.net/chenyujing1234  以下给出了有关图标和指针的API函数 函 数 说 明 CopyCursor 复制指针,使用CopyIcon CopyIcon
  • 无论实在终端会
  • VSCode 返回上一个光标 (上一个浏览位置)

    万次阅读 多人点赞 2018-11-28 11:47:12
    Ctrl + 鼠标左击跳到定义. 返回 Windows: Alt + ← ;或者 鼠标侧键 Linux: Ctrl + Alt + - ;貌似数字键盘的减号没效果 Mac: Ctrl + -
  • 光标设置

    千次阅读 2018-01-07 14:54:11
    [cpp] view plain copy #include "MyConsole.h"  #include    int main()  {   CMyConsole myConsole;    ... // 暂停(默认光标样式)     myConsole.Hid
  • 在.net中实现彩色光标,动画光标和自定义光标 作者:孟宪会 出自:【孟宪会之精彩世界】 发布日期:2004年10月22日 8 下面是完整的例子,可以通过命令行编译即可看到效果。test.csusing System;using System....
  • Android EditTest光标问题

    2015-08-11 11:30:18
    我想让我做的搜索框默认没有光标 直到我点击搜索框的时候就会出现光标。...我在xml文件里默认不显示光标,在点击onclick时间之后用searchEditText.setCursorVisible(true)显示光标,但是为什么还是没有光标出现
  • oracle 光标

    千次阅读 2016-10-29 17:02:32
    使用两种光标:显示光标和隐式光标。不管语句返回多少条纪录, PL/SQL 为使用的每一条 UPDATE 、 DELETE 和 INSERT 等 SQL 命令隐式的声明一个光标。 一、计算机术语 当你在一个文本框或某种程序中输入文字...
  • 加载光标

    千次阅读 2010-08-12 22:36:00
    windows程序中,在窗口类的定义中,WNDCLASS结构体的一个成员 wndcls.hCursor 可以选择不同的光标,总结如下:   1.系统光标。 加载系统光标比较简单. wndcls.hCursor=LoadCursor(NULL...
  • oracle光标

    2016-03-23 14:46:27
    1、oracle的光标属性 %found 有记录 %notfound 没有记录 %isopen 判断光标是否打开 %rowcount 影响的行数,不是总数 2、光标的限制,默认情况下,oracle只允许在同一个会话中,打开300个光标 通过show parameter ...
  • 光标移动

    千次阅读 2012-10-10 16:00:39
    参考: [1]... 在UITextInput协议中,有selectedTextRange来表示光标的起始和结束位置,如果start和end相同则表示光标选中内容
  • 沙漏光标

    千次阅读 2014-03-17 10:40:16
    沙漏光标为 Windows 操作系统本身默认支持之特性,微软已经把对沙漏光标的支持封装在 MFC 框架当中,开发人员可以不需要为此而在程序中引入 Cursor 资源。在 MFC 程序中,可以使用以下三种方式来操作沙漏光标: ...
  • 光标类型

    千次阅读 2010-09-02 16:47:00
    光标类型   光标类型 CSS 把你的光标放到相应文字上查看效果要注意光标的实际效果依赖于用户的系统设置,与你在这里看到的效果并不一定一致。十字准心</SPAN>cursor: crosshair; 手</SPAN>cursor: ...
  • 光标变量

    2009-01-15 09:07:00
    光标变量:光标变量用来存储光标定义的一个引用,由变量定义的光标定义为局部光标,在一些命令中可以直接用光标变量来代替光标的引用,如命令OPEN, FETCH, CLOSE及DEALLOCATE光标变量支持所有的T-SQL光标语法,与可...

空空如也

1 2 3 4 5 ... 20
收藏数 59,434
精华内容 23,773
关键字:

光标