I recently read the article Life in a TEXTAREA,  and found myself in violent agreement. I find it even more frustrating that my PC is loaded with a bunch of great text-editing software, including Microsoft Word, and yet none of it helps me when I am typing inside my browser which happens to be Internet Explorer.  I think it's a shame. I would love to be able to leverage features like Spelling/grammar-check and Search/Replace without having to copy-paste into Word, do the stuff, and then paste back into my browser.

Actually, given that Word provides a scriptable object model, it is fairly easy (with a few lines of JavaScript)  to hook up the browser with it to do these automatically. For instance, linking the following stylesheet with the page should do the trick for every TEXTAREA (and therefore every multiline asp:TextBox) on the page.  Of course, it does require the user to allow script and active content.

UseWord.css:

 TEXTAREA
{
 behavior:url(useword.htc);
}

UseWord.htc:

 <PUBLIC:ATTACH EVENT="onkeydown" ONEVENT="DoKeyDown()" />
<SCRIPT LANGUAGE="JScript">

    function DoKeyDown()
    {
        var keyCodeF7 = 118;
        var keyCodeF8 = 119;
        if (window.event.keyCode == keyCodeF7)
        {
            DoSpellCheck();
        }
        else if (window.event.keyCode == keyCodeF8)
        {
            DoFindReplace();
        }
    }
   
    function DoFindReplace()
    {
        var wdDialogEditReplace = 117;
        ShowWordDialog(wdDialogEditReplace);
    }

    function DoSpellCheck()
    {
        var wdDialogToolsSpellingAndGrammar = 828;
        ShowWordDialog(wdDialogToolsSpellingAndGrammar);
    }

    function ShowWordDialog(dialogIndex)
    {
        var wordApp = new ActiveXObject("Word.Application");
        if (wordApp == null)
        {
            alert("Unable to launch Microsoft Word");
            return;
        }
        var wdDialogToolsSpellingAndGrammar = 828;
        var wdDoNotSaveChanges = 0;
        var wordDoc = wordApp.Documents.Add();
        wordApp.Selection.Text = element.innerText;
        wordApp.Visible = true;
        wordApp.Activate();
        wordApp.Dialogs(dialogIndex).Show();
        // element.innerText = wordApp.Selection.Text;
        element.innerText = wordDoc.Content;
        wordDoc.Close(wdDoNotSaveChanges);
        wordApp.Visible = false;
        wordApp.Quit();
    }
</SCRIPT>

============================================================== 

One big gotcha with this is that, as a browser user, I still have to depend on the page author to link this stylesheet, and I have to trust their script and active content. If only I could set this up a User Stylesheet .. too bad User Stylesheets don't allow local HTCs because of cross-domain security issues.

Mohan