0

イベントRichTextBoxを使用してテキストの色を判断する方法はありますか? マウスが移動するすべての場所に小さな選択バーが追加mousemoveされるため、使用を避けたいと思います。Richtextbox.Select

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;
}
4

2 に答える 2

1

JoOls のこの MSDN フォーラムの回答から変更されたこのようなものを試すことができます。これにより、マウスの下にあるピクセルの色が得られます。

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;
    }
}
于 2013-05-10T02:30:07.833 に答える
0

暗闇でのショットですが、次のように動作しますか?

    private void rtbComputerstatus_MouseMove(object sender, MouseEventArgs e)
    {
        if (rtbComputerstatus.ForeColor.ToKnownColor() == KnownColor.Blue)
            rtbComputerstatus.Cursor = Cursors.Hand;
        else
            rtbComputerstatus.Cursor = Cursors.Default;
    }

これは選択したテキストだけをチェックすると思います:

    private void rtbComputerstatus_MouseMove(object sender, MouseEventArgs e)
    {

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

    }
于 2013-05-10T02:14:02.310 に答える