Как скрыть каре в RichTextBox?

Можете ли вы сделать что-то вроде:

if(x == null)
{
    x = 0;
}
8
задан pistacchio 24 February 2009 в 15:56
поделиться

3 ответа

Можно использовать API-функцию HideCaret, Проверить ее на www.pinvoke.net. Прием должен знать, когда назвать его. Очень простое и грязное решение состоит в том, чтобы запустить одноразовый таймер в событии Enter RTF. При захвате корректного сообщения в WndProc, поскольку предлагает nobugs, лучше, к сожалению, захваченное сообщение является неправильным...

2
ответ дан 5 December 2019 в 08:54
поделиться

У меня это работает:

public class RichTextLabel : RichTextBox
{
    public RichTextLabel()
    {
        base.ReadOnly = true;
        base.BorderStyle = BorderStyle.None;
        base.TabStop = false;
        base.SetStyle(ControlStyles.Selectable, false);
        base.SetStyle(ControlStyles.UserMouse, true);
        base.SetStyle(ControlStyles.SupportsTransparentBackColor, true);

        base.MouseEnter += delegate(object sender, EventArgs e)
        {
            this.Cursor = Cursors.Default;
        };
    }

    protected override void WndProc(ref Message m) {
        if (m.Msg == 0x204) return; // WM_RBUTTONDOWN
        if (m.Msg == 0x205) return; // WM_RBUTTONUP
        base.WndProc(ref m);
    }
}

Надеюсь, это поможет

2
ответ дан 5 December 2019 в 08:54
поделиться

Сделайте что-нибудь, чтобы он не получил «фокус ввода»: он будет иметь курсор и его можно будет редактировать, только пока он находится в фокусе.

0
ответ дан 5 December 2019 в 08:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: