Выделение выделенной строки в активном окне цветом C#(плагин notepad++)

Привет я делаю плагин notepad++ с использованием C#

что мне нужно, показать активное окно между данным номером строки в некотором цвете. Допустим, у меня есть строки № 2 и 8, затем он должен выделить экран блокнота ++ между строками № 2 и 8 зеленым цветом.

Чтение из активного окна

        int length = (int)Win32.SendMessage(GetCurrentScintilla(), SciMsg.SCI_GETLENGTH, 0, 0);
        IntPtr ptrToText = Marshal.AllocHGlobal(length + 10);
        Win32.SendMessage(GetCurrentScintilla(), SciMsg.SCI_GETTEXT, length+10, ptrToText);
        String InputFromActiveWindow = Marshal.PtrToStringAnsi(ptrToText);

код для фокусировки на выбранной строке

       Win32.SendMessage(curScintilla, SciMsg.SCI_ENSUREVISIBLE, lineNumber, 0);
        Win32.SendMessage(curScintilla, SciMsg.SCI_GOTOLINE, lineNumber, 0);
        Win32.SendMessage(curScintilla, SciMsg.SCI_GRABFOCUS, 0, 0);
        Win32.SendMessage(curScintilla, SciMsg.SCI_GRABFOCUS, 0, 0);

// Ответ

win32.SendMessage(PluginBase.nppData._scintillaMainHandle, SciMsg.SCI_MARKERDEFINE, 1, (int)SciMsg.SC_MARK_BACKGROUND);
            Win32.SendMessage(PluginBase.nppData._scintillaMainHandle, SciMsg.SCI_MARKERSETBACK, 1, 0x99FF00);
            for (int linetobeHighlighted = StartLine; linetobeHighlighted <= EndLine; linetobeHighlighted++)
            {
                Win32.SendMessage(PluginBase.nppData._scintillaMainHandle, SciMsg.SCI_MARKERADD, linetobeHighlighted, 1);
            }

1 ответ

Для выделения выделенного текста используйте

Win32.SendMessage(PluginBase.GetCurrentScintilla(),
              SciMsg.SCI_SETSELBACK, 1, 0xFFFF00);

Обратитесь к плагину Notepad++ - найдите и выделите текст для более подробной информации.

Другие вопросы по тегам