Использование MS Word в качестве средства проверки орфографии в приложении VB.net на одном мониторе - PullRequest
0 голосов
/ 23 апреля 2019

Я использую код из http://www.vb -helper.com / howto_net_spellcheck.html , который использует программу проверки орфографии Microsoft Word и слегка изменен в соответствии с моим приложением. Но иногда на дополнительном мониторе открывается окно проверки орфографии, и его нужно открыть на том же мониторе, что и приложение VB.net. Во время пользовательского тестирования пользователь не может найти окно проверки орфографии, потому что оно находится на другом мониторе.

Я немного знаю VB.net, но явно недостаточно для решения этой проблемы. У меня есть Google и в основном открытая форма VB на конкретном мониторе, но это не то, что мне нужно. Мой код:

If RTBProposedProcedure.Text.Length > 0 Then
        'Make a Word server object.
        Dim word_server As New Word.Application With {.Visible = False}  'Hide the server.              
        Dim doc As Word.Document = word_server.Documents.Add()  ' Make a Word Document.
        Dim rng As Word.Range
        rng = doc.Range() 'Make a Range to represent the Document.
        rng.Text = RTBProposedProcedure.Text  ' Copy the text into the Document.
        doc.Activate() ' Activate the Document and call its CheckSpelling method.
        doc.CheckSpelling()
        Dim chars() As Char = {CType(vbCr, Char), CType(vbLf, Char)} 'Copy the results back into the TextBox, trimming off trailing CR and LF chars.
        RTBProposedProcedure.Text = doc.Range().Text.Trim(chars)
        doc.Close(SaveChanges:=False)  ' Close the Document, not saving changes.
        word_server.Quit()   ' Close the Word server.
        MsgBox("Spelling Check Finished", MsgBoxStyle.Information)
    End If

Что отлично работает (спасибо VB Helper), но я не могу понять, как заставить окно проверки орфографии открываться на том же мониторе, что и приложение?

Пожалуйста, помогите.

Заранее спасибо

1 Ответ

0 голосов
/ 23 апреля 2019

Попробуйте использовать

MessageBox.Show(Me, "Spelling Check Finished", "Finished", MessageBoxButtons.OK, MessageBoxIcon.Information)

вместо функции MsgBox.

С помощью Me вы указываете, что владельцем MessageBox является форма вашего приложения.

Если это не работает, это будет:

Центрированный код MessageBox

...