Я пытаюсь реализовать пользовательский текстовый редактор на C# с использованием компонента ScintillaNET. У меня есть большая часть этого до сих пор, но застряла в какой-то момент. Я хочу дать пользователю возможность блокировать комментарий/раскомментировать выделенный текст. Я много пробовал, но не могу найти примеры в Интернете. Единственное, что мне кажется, чтобы получить от объекта Selection элемента управления являются начальным и конечным точкам, но это не очень поможетВнедрить комментарий блока/раскоммента в элементе управления ScintillaNET
private void commentBlockToolStripMenuItem_Click(object sender, EventArgs e)
{
if (txtSQL.Selection.Text.Length > 0)
{
String start = txtSQL.Selection.Start.ToString();
String end = txtSQL.Selection.End.ToString();
MessageBox.Show(start + "::" + end);
}
}
Были ли вам удалось успешно осуществить это с помощью элемента управления ScintillaNET?
EDIT: После некоторой импровизации я могу как-то это сделать, но после комментария блока последняя строка выходит из выбора!
private void commentBlockToolStripMenuItem_Click(object sender, EventArgs e)
{
if (txtSQL.Selection.Text.Length > 0)
{
Range range = txtSQL.Selection.Range;
int f = range.StartingLine.Number;
int t = range.EndingLine.Number;
int endpos = txtSQL.Selection.End;
for (int i = f; i <= t; i++)
{
//txtSQL.GoTo.Line(i);
string tstr = txtSQL.Lines[i].Text.Replace(Environment.NewLine, "");
txtSQL.Lines[i].Text = "--" + tstr;
}
}
}
Это больше не поддерживается: https://github.com/jacobslusser/ScintillaNET/issues/286 – Nikolai