|
Программирование >> Автоматически обновляемые приложения
private void richTextBoxl DragDrop(object sender, DragEventArgs e) { richTextBoxl.LoadFile((String)e.Data.GetData( Text ), System.Windows.Forms.RichTextBoxStreamType.RichText); Как определить наличие полос прокрутки в элементе RichTextBox? Проверить наличие полос прокрутки в элементе RichTextBox можно с помощью стиля wsHSCROLL (горизонтальная полоса прокрутки) и wsvscroll (вертикальная полоса прокрутки). Проверка (листинг 6.34) осуществляется при помощи функции Windows API GetWmdowLong. ; Листинг 6,34. Проверка на наличие полосы прокрутки в RichTextBox [Dlllmport( User32.dll )] static extern int GetWindowLong(IntPtr hWnd, int nindex); const int GWL STYLE = -16; const mt WS HSCROLL = 0x00100000; const int WS VSCROLL = 0x00200000; Проверка на наличие вертикальной прокрутки bool IsVertScrollPresent(Control control) { int style = GetWindowLong(control.Handle, GWL STYLE); return (style & WS VSCROLL) > 0; Проверка на наличие горизонтальной прокрутки bool IsHorScrollPresent(Control control) private void richTextBoxl DragEnter(object sender. System.Windows.Forms.DragEventArgs e) if (((DragEventArgs)e).Data.GetDataPresent(DataFormats.Text)) ((DragEventArgs)e).Effect = DragDropEffects.Move; else ((DragEventArgs)e).Effect = DragDropEffects.None; 168 Глава 6 int style = GetWindowLong(control.Handle, GWL STYLE); return (style & WS HSCROLL) > 0; private void butScrollExist Click(object sender, EventArgs e) { textBoxl.Text = Вертикальная прокрутка: + IsVertScrollPresent(richTextBoxl).ToStringO + Environment.NewLine + Горизонтальная прокрутка: + IsHorScrollPresent(richTextBoxl).ToStringO; В принципе, этот код можно применить также для текстовых полей и других элементов, которые имеют встроенные полосы прокрутки. Как запретить вставку Вставлять из буфера обмена в RichTextBox можно двумя способами: через комбинацию клавиш <Ctrl>+<V> или через комбинацию клавиш <Shift>+ +<lnsert>. Таким образом, если вам необходимо установить запрет на вставку из буфера обмена, то нужно перехватить нажатия на эти клавиши, как это сделано в листинге 6.35. Листинг 6,35, Запрет на еставку из буфера обмена public Forml() { RichTextBoxEx rboxex = new RichTextBoxEx(); rboxex.Parent = this; rboxex.Top = 400; class RichTextBoxEx : RichTextBox { protected override bool ProcessCmdKey(ref Message msg. Keys keyData) { Проверяем на нажатие Shift+Insert и Ctrl+V if ((keyData & (Keys.Shift Keys.Insert)) == (Keys.Shift Keys.Insert) II ((keyData & (Keys.Control Keys.V)) == (Keys.Control I Keys.V))) Мы создали новый класс RichTextBoxEx И В мстодс ProcessCmdKey отслеживаем нажатия интересующих нас клавиш, не позволяя вставлять содержимое буфера обмена в наш элемент управления. Более подробную информацию о формате RTF вы можете прочитать в Википедии по адресу http: ru.wikipedia.org/wiki/Rich Text Format. Примечание Примеры работы с элементом RichTextBox нзходятся В пзпке RichText-BoxDemo на прилагаемом диске Элемент управления MaskedTextBox в .NET Framework 2.0 появился новый элемент управления MaskedTexBox, который служит для ввода данных определенного формата. Символы маски нужно задать во время разработки, чтобы указать тип и формат данных, которые может ввести пользователь. Например, можно настроить элемент таким образом, чтобы пользователь мог вводить только цифры, цифры и скобки (например, телефонный номер (095)6015629), цифры и тире (например, номер страховки 45-4993-3459) и другие варианты. Рекомендую самостоятельно изучить возможности элемента и почитать документацию. Появление данного элемента избавило программистов от необходимости создания собственных элементов на основе текстового поля для решения подобных задач. Элемент DateTimePicker Как показать пустой текст, если в DateTimePicker не выбрана дата? Если по каким-то причинам вам нужно показать пустой текст в злсмсте DateTimePicker, ТО ИСПОЛЬЗуЙте КОД, приведенНЫЙ В ЛИСТИНГе 6.36 )мр.1 боТЧИКе события Click КНОПКИ. return true; return base. ProcessCindKey(ref msg, keyData) ;
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |