发布
社区首页 >问答首页 >Richtextbox mousemove事件文本是什么颜色

Richtextbox mousemove事件文本是什么颜色
EN

Stack Overflow用户
提问于 2013-05-10 10:00:46
回答 2查看 632关注 0票数 0

有没有办法使用mousemove事件来确定RichTextBox中的文本是什么颜色?我想避免使用Richtextbox.Select,因为它会在鼠标移动的地方添加一个小选择栏。

代码语言:javascript
代码运行次数:0
复制
private void rtbComputerstatus_MouseMove(object sender, MouseEventArgs e)
{
    int c = rtbComputerstatus.GetCharIndexFromPosition(new Point(e.X, e.Y));

    rtbComputerstatus.Select(c, 1);

    if (rtbComputerstatus.SelectionColor == Color.Blue)
        rtbComputerstatus.Cursor = Cursors.Hand;
    else
        rtbComputerstatus.Cursor = Cursors.Default;
}
EN

回答 2

Stack Overflow用户

发布于 2013-05-10 10:30:08

你可以尝试这样的东西,从这个MSDN Forum answer of JoOls修改,它将给你鼠标下面的像素的颜色。

代码语言:javascript
代码运行次数:0
复制
private void rtbComputerstatus_MouseMove(object sender, MouseEventArgs e)
{
    Point  cursorPoint = Cursor.Position;
    Bitmap bm = new Bitmap(1, 1);
    Graphics g  = Graphics.FromImage(bm);
    g.CopyFromScreen(cursorPoint, new Point(), new Size(1, 1));
    Color pixelColor = bm.GetPixel(0, 0);
    g.Dispose();
    bm.Dispose();
    if (pixelColor.ToArgb().Equals(Color.Blue.ToArgb()))
    {
        if (rtbComputerstatus.Cursor != Cursors.Hand)
            rtbComputerstatus.Cursor = Cursors.Hand;
    }
    else
    {
        if(rtbComputerstatus.Cursor != Cursors.Default)
            rtbComputerstatus.Cursor = Cursors.Default;
    }
}
票数 1
EN

Stack Overflow用户

发布于 2013-05-10 10:14:02

代码语言:javascript
代码运行次数:0
复制
    private void rtbComputerstatus_MouseMove(object sender, MouseEventArgs e)
    {
        if (rtbComputerstatus.ForeColor.ToKnownColor() == KnownColor.Blue)
            rtbComputerstatus.Cursor = Cursors.Hand;
        else
            rtbComputerstatus.Cursor = Cursors.Default;
    }

我认为这将只检查选定的文本:

代码语言:javascript
代码运行次数:0
复制
    private void rtbComputerstatus_MouseMove(object sender, MouseEventArgs e)
    {

        if (rtbComputerstatus.SelectionColor.ToKnownColor() == KnownColor.Blue)
            rtbComputerstatus.Cursor = Cursors.Hand;
        else
            rtbComputerstatus.Cursor = Cursors.Default;

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16474028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档