Как программно выделить слово в RichTextBox - Visual Basic .NET

  1. Доброго времени суток! Допустим есть предложение "Ваш код работает, глюков вроде никаких." в ричтекстбоксе. Как программно выделить слово "работает"?


textual

Код:

        RichTextBox1.Find("работает", RichTextBoxFinds.MatchCase)
        RichTextBox1.Focus()


Похожие ответы
  1. Добрый день, Товарищи! Совсем сломал голову, не могу придумать или еще не знаю методы. Обрыскал вроде все. Допустим на форме 50 текстбоксов, Я на них навешал проверки по средствам Validated (забегая вперед, из мднс порядок событий Enter GotFocus Leave Validating Validated LostFocus ) Так вот, когда я програмно меняю текст ( а это при загрузке проекта, из архива заполняется карточка, validated не происходит, потому что текстбокс не получает фокус или enter. У меня есть hastable всех боксов, возможно ли вызвать для каждого бокса событие validated?vb.net1 2 3 4 5 6 7         For Each x In TexB.Keys             Dim MyTb As TextBox = TexB(x)             ????????             Nextпробовал через MyTb.Focus(), но это беготня по экрану получается конечно же.... Спасибо!

  1. 1. Получаю запросом из БД в дататейбл данные: "наименование", "тип контрола", "Значение" 2. В цикле для каждого значения программно создаю одину контрол панель, в ней вывожу лейблом "Наименование", создаю в зависимости от типа контрола (полученного запросом) нужный контрол (например текст бокс/чекбокс/комбобокс и т.д.) и вывожу в него "значение" А вот теперь суть вопроса: 3. Существует кнопка "сохранить", при нажатии на которую необходимо получить "значения" каждого из созданного контрола, а затем подставить в запрос эти данные и сохранить обратно в БД. - Помогите с решением для получения данных из программно созданных контролов. Заранее спасибо.

  1. При запуске приложения нужно обработать значительное количество данных. Например, исследовать содержимое папки с несколькими тысячами файлов. Эта операция занимает на среднем компьютере более 10 секунд. Если выполнение этой операции производить в Form_Load это затормозит загрузку приложения. Причём результаты выполнения этой длительной операции понадобятся не сразу после загрузки формы, а чуть позднее. А если в Form_Load вставить запуск второго потока в котором и производить эту операцию, не мешая при этом процессу запуска приложения? Если это возможно, то как это реализовать? Вот приблизительный пример для демонстрации описанных выше "тормозов":vb.net1 2 3 4 5 6 7 8 9 10 11 12 Public Class Form1     Dim count As Long     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load         LongProc()         Label1.Text = count.ToString     End Sub     Sub LongProc()         For i As Long = 0 To 4000000000             count += i         Next     End Sub End ClassДобавлено через 23 часа 51 минуту Вот нашёл в одной из тем (ответ Sklifosofsky):vb.net1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Imports System.Threading Public Class Form1     Private Delegate Sub _dlg(ByVal val As Integer)     Private CallBack As New _dlg(AddressOf ShowResult)     Dim count As Integer     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load         Dim th As New MethodInvoker(AddressOf thExec) 'Создание экземпляра класса делегата         th.BeginInvoke(Nothing, Nothing)              'Старт асинхронного потока     End Sub     Private Sub thExec()         For i As Integer = 0 To 10000             count += i             Me.Invoke(CallBack, i) 'вклинивание передачи данных в основной поток             Try                 Me.Invoke(CallBack, i) 'вклинивание передачи данных в основной поток             Catch ex As Exception                 Exit Sub 'на случай завершения работы приложения до окончания цикла             End Try         Next     End Sub 'Поток завершается автоматически, после завершения работы метода thExec.     Sub ShowResult(ByVal val As Integer)         Label1.Text = count.ToString     End Sub End ClassНо почему-то цикл For совершается довольно медленно (если не использовать второй поток, цикл завершается мгновенно). И не могу догадаться как сделать, чтобы в метке появился конечный результат вычисления цикла, а не последовательный перебор значений.

  1. Всем доброго времени суток. Необходимо мониторить размер свободного места на сетевом диске. Есть IO.DriveInfo.TotalFreeSpace но с помощью него можно получить информацию о дисках только на локальном компьютере. А как подключиться к компьютеру в локальной сети (например, имеющему адрес 192.168.x.x)? Заранее всем спасибо.

  1. Есть некий макет в excel, в нем есть таблица, в таблице записи, как уменьшить размер текста в таблице оставив остальной текст без изменений? Сделать это в самом макете не могу на уровне excel, так как неизвестно в каком месте макета будет выведена данная информация, нужно именно программно прописать, помогите пожалуйста.vb.net1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 'отрисовка таблицы                 .Range("C9:E9").Borders.LineStyle = True                 .Range("A10").Borders.LineStyle = True                 .Range("B10").Borders.LineStyle = True                 .Range("C10").Borders.LineStyle = True                 .Range("D10").Borders.LineStyle = True                 .Range("E10").Borders.LineStyle = True                 .Range("F10").Borders.LineStyle = True                 .Range("G10").Borders.LineStyle = True                 .Range("H10").Borders.LineStyle = True                 .Range("A11:A12").Borders.LineStyle = True                 .Range("B11:B12").Borders.LineStyle = True                 .Range("C11:C12").Borders.LineStyle = True                 .Range("D11:D12").Borders.LineStyle = True                 .Range("E11:E12").Borders.LineStyle = True                 .Range("F11:F12").Borders.LineStyle = True                 .Range("G11:G12").Borders.LineStyle = True                 .Range("A13:A14").Borders.LineStyle = True                 .Range("B13:B14").Borders.LineStyle = True                 .Range("C13:C14").Borders.LineStyle = True                 .Range("D13:D14").Borders.LineStyle = True                 .Range("E13:E14").Borders.LineStyle = True                 .Range("F13:F14").Borders.LineStyle = True                 .Range("G13:G14").Borders.LineStyle = True                 For Each n% In {1, 8, 9, 10}                     .Range("H11:H14").Borders(n).LineStyle = 1 'xlContinuous                 Next                 'отрисовка текста в макете                 appExcel.CELLS(1 + i * 17, 1) = "п/о"                 appExcel.CELLS(1 + i * 17, 3) = TextBox2.Text                 appExcel.CELLS(2 + i * 17, 3) = "XXX''"                 appExcel.CELLS(2 + i * 17, 12) = "Каб 92"                 appExcel.CELLS(3 + i * 17, 3) = "АНАЛИЗ КРОВИ №_____ + ЭДС"                 appExcel.CELLS(3 + i * 17, 12) = "III этаж"                 appExcel.CELLS(5 + i * 17, 1) = TextBox1.Text                 appExcel.CELLS(6 + i * 17, 1) = "В учреждение_______________________________________________________"                 appExcel.CELLS(7 + i * 17, 1) = "Корпус. отд_________________________________________________________"                 appExcel.CELLS(9 + i * 17, 3) = "              Толстая капля"                 appExcel.CELLS(10 + i * 17, 1) = "Эритроц."                 appExcel.CELLS(10 + i * 17, 2) = "Гемогл."                 appExcel.CELLS(10 + i * 17, 3) = "Цв. Пок."                 appExcel.CELLS(10 + i * 17, 4) = "Полихр."                 appExcel.CELLS(10 + i * 17, 5) = "Базоф."                 appExcel.CELLS(10 + i * 17, 6) = "Ретикул."                 appExcel.CELLS(10 + i * 17, 7) = "Тромбоц."                 appExcel.CELLS(10 + i * 17, 8) = "Параз."                 appExcel.CELLS(11 + i * 17, 1) = "в 1 куб. мм"                 appExcel.CELLS(11 + i * 17, 2) = "80-100"                 appExcel.CELLS(11 + i * 17, 3) = "0.8-1.0"                 appExcel.CELLS(11 + i * 17, 4) = "+"                 appExcel.CELLS(11 + i * 17, 5) = "-"                 appExcel.CELLS(11 + i * 17, 6) = "0.6-0.8"                 appExcel.CELLS(11 + i * 17, 7) = "250-400"                 appExcel.CELLS(12 + i * 17, 1) = "4 1/2 - 5мм"                 appExcel.CELLS(12 + i * 17, 7) = "тысяч"                 appExcel.CELLS(17 + i * 17, 7) = "каб 29"

  1. И снова выручайте, други почти закончил проект, осталась одна маленькая загвоздка, нужно нарисовать только внешнюю границу в excel у стобика 4 на 1 ячейки .Range("H11:H14").Borders.LineStyle = True - прорисовывает все границы в указанном диапозоне, у всех 4 ячеек, а мне нужно только внешнюю.

  1. Доброго времени суток! Прошу помощи в удалении программно созданных Label. Создать получилось, а вот с удалением как то не задалось. Создаю таким образом:vb.net1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Sub daty()           Dim mas(0 To kolvo - 1) As Label         For i = 0 To kolvo - 1             mas(i) = New Label             mas(i).Text = i + 1             mas(i).Left = 160             mas(i).Top = 30             mas(i).Height = 20             mas(i).Width = 20             mas(i).AutoSize = False               'mas(i).BorderStyle = BorderStyle.FixedSingle             If i > 0 Then                 mas(i).Left = 25 * i + 170             Else                 mas(i).Left = 170             End If             mas(i).Visible = True             Me.Controls.Add(mas(i))         Next     End SubПотом в событии Button_Click пытаюсь удалить:vb.net1 2 3 4 5 6 7 8 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click           Dim mas(0 To kolvo - 1) As Label         For Each lb As Label In mas             lb.Dispose()         Next       End SubВозникает ошибка: "Ссылка на объект не указывает на экземпляр объекта" Как правильно удалить? Заранее признателен!

  1. Здравствуйте! Нужно чтобы при нажатии кнопки создавался PictureBox с определёнными свойствами Location: x, y и SizeMode: Autosize и в него загрузилась определённая картинка. Но нужно чтобы перед этим была произведена проверка на наличие другого PictureBox на этих координатах (Location) и если на них уже имеется PictureBox, то нужно чтобы создаваемый PictureBox размещался по другим координатам, но если и там уже есть PictureBox, то по следующим и т.д. Все PictureBox'ы будут иметь одинаковый размер. Помогите, пожалуйста, с решением.

  1. Всем привет! Подскажите как программно задать ширину колонок DataGridView?

  1. На форме RichTextBox (при загрузке формы, в нем написан текст),TextBox и Button. 1. Как при вводе числа в TextBox (вводим число, номер строки), в RichTextBox выделялась эта строка? 2. Допустим в RichTextBox имеется предложение - "следующие примеры иллюстрируют различия в методах". Как сделать так, что например если мышка стоит на слове примеры, я нажимаю Button и MsgBox высвечивается слово "примеры - это"