INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Jobs

Force Dialog Box (Spell Check) to Come to Front

Force Dialog Box (Spell Check) to Come to Front

(OP)
I've got a VB.NET application which I am working on which uses the Word spellchecking feature. I've tried numerous things to get the dialog box for the spellchecker to pop-up on top of all the other windows, but it doesn't work. Below is the code for the function which I have tried to make work - as you can see I tried .Show, .Active and .Topmost, but no matter what the dialog box is hidden under my windows:

CODE

Public Function CheckString(ByRef str As String) As String

        Dim app As Application = New Word.Application
        Dim doc As Document = app.Documents.Add
        app.Selection.Text = str

        Try

            Dim dlg As Word.Dialog
            dlg = app.Dialogs.Item(Word.WdWordDialog.wdDialogToolsSpellingAndGrammar)



            Dim oldFilter As IOleMessageFilter = Nothing
            Dim nullFilter As IOleMessageFilter = Nothing
            CoRegisterMessageFilter(nullFilter, oldFilter)
            Try
                dlg.Show()
                dlg.Active()
                dlg.TopMost = True

            Finally
                CoRegisterMessageFilter(oldFilter, oldFilter)
            End Try

            app.Visible = False

            Dim docRange As Range = doc.Content

            str = docRange.Text

            str = str.TrimEnd(Environment.NewLine)

        Catch e As Exception

            System.Diagnostics.Trace.WriteLine("Spell checking...")
            System.Diagnostics.Trace.WriteLine(e.ToString)

        Finally

            doc.Close(WdSaveOptions.wdDoNotSaveChanges)
            app.Quit()

        End Try

        Return str

    End Function 

Thanks,
Jeff

RE: Force Dialog Box (Spell Check) to Come to Front

Well, the bad news is that this is a problem that's been around for years, any solutions I've seen are inconsistent workarounds at best, and Microsoft specifically says that using Word's spell check in other applications is both buggy and not supported.

Perhaps the SpellCheck class could do what you need: https://msdn.microsoft.com/en-us/library/system.wi...

I used to rock and roll every night and party every day. Then it was every other day. Now I'm lucky if I can find 30 minutes a week in which to get funky. - Homer Simpson

Arrrr, mateys! Ye needs ta be preparin' yerselves fer Talk Like a Pirate Day!

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Resources

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close