Толик Панков
hex_laden
............ .................. ................
Back October 16th, 2019 Forward
C#. Удаление HTML-тегов из текста.

Т.е. остается только текст между тегами, например из:
<b>жирный текст</b> <a href="http://example.org">Это ссылка куда-то</a>
должно получиться
жирный текст Это ссылка куда-то

Регулярное выражение для HTML-тега


По счастью, оно совсем простое:

<[^>]+>

Пример


Не забываем подключить соответствующее пространство имен:
using System.Text.RegularExpressions;
//...
string htmlText = "<html><head><title>tolik-punkoff.com</title></head> <body>Welcome to Tolik Punkoff blog!</body></html>";
OutputText = Regex.Replace(htmlText, "<[^>]+>", string.Empty);

//Содержимое OutputText:
//tolik-punkoff.com Welcome to Tolik Punkoff blog!


Примечание: В примере между фразами пробелы, потому что есть пробелы между тегами. Функция никаких пробелов сама по себе не вставляет!

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/10/14/c-udalenie-html-tegov-iz-teksta/

Tags: ,
C#, скрыть (убрать) курсор (каретку) из TextBox

Чтоб два раза не вставать, начну сразу с нескольких простейших манипуляций с курсором из TextBox.

Снятие выделения и управление местоположением курсора (каретки)


Иногда текст в многострочном TextBox'е автоматически выделяется.



И это выделение обычно не нужно. Благо снять его легко, достаточно переместить курсор.

Установка курсора в начало или конец текста


Для установки курсора в начало текста устанавливаем свойство SelectionStart в 0. Т.е. устанавливаем курсор перед первым символом текста:

//ставим курсор в начало текста
txtSampleText.SelectionStart = 0;


Установить курсор в конец текста тоже проблем не представляет:

//ставим курсор в конец текста
txtSampleText.SelectionStart = txtSampleText.Text.Length;


Выделение исчезнет, а курсор будет в начале или конце текста.

Скрытие курсора переводом фокуса


Для того, чтобы визуально скрыть текстовый курсор в TextBox, можно перевести фокус на другой объект формы. Например, далее переведем фокус на кнопку btnClose, находящуюся рядом с TextBox:



//убираем курсор (сменой фокуса на другой элемент формы)
btnClose.Select();


Но смена фокуса иногда влечет за собой нежелательные последствия, например текст нельзя будет прокручивать колесиком мышки. Если нужно, чтобы фокус оставался в TextBox, а каретка (текстовый курсор) не отображалась, стоит воспользоваться WinAPI.

Использование WinAPI для скрытия текстового курсора (каретки)


Сначала экспортируем WinAPI функцию:

public frmHideCaret()
{
    InitializeComponent();
}

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool HideCaret(IntPtr hWnd);

//...


Потом вызываем ее в обработчике события Shown (если вызвать, например в Load не сработает, надо чтобы форма появилась):

private void frmHideCaret_Shown(object sender, EventArgs e)
{
    HideCaret(txtSampleText.Handle);
}


Весь пример на GitHub


Смотреть в репозитарии

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/10/16/c-skryt-ubrat-kursor-karetku-iz-textbox/

Tags: ,
Фразочка

Выбросил в фукуяму.

Блин, жалко Лейбов свой генератор заголовков не поддерживает, неплохо бы смотрелось что-то типа: "В ходе зачистки аула Херсов-Мурда лидер Антимиайдана Залдостанов выбросил в фукуяму народного мэра Луганска"

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/10/16/frazochka-31/

Back October 16th, 2019 Forward