jfo's coding

adventures in windows forms and wpf

May, 2005

Blog - About

About jfo's coding

About JFo

Jessica (aka JFo) has 9 years experience building user interface libraries at Microsoft.   As a developer on the Windows Forms team, Jessica designed and implemented various aspects of the Windows Forms runtime for the 1.1 and 2.0 releases of the .Net Framework.  Her current project is the "Cider" designer for the "Dev10" release of Visual Studio.

About the blog

This blog is designed to talk about two different subjects: Windows Forms and the "Cider" designer for the Windows Presentation Foundation.  For a list of articles on Windows Forms, be sure to check the "Best and worst of JFos Coding by Category."

Providing WPF feedback

There are multiple ways customers can provide feedback and suggestions for Windows Presentation Foundation:

Providing Cider Feedback

Cider is in its early stages of development.  We encourage customers to send us feedback through  

Providing Windows Forms Feedback

There are several ways to provide feedback to the Windows Forms team


  • jfo's coding

    Updating your RichTextBox safely

    I’ve gotten a few more questions about this after the brief mention about the RichTextBox threading problem . Is it just a rich text box problem? Can I use a TextBox instead? No, unfortunately all windows forms UI, as well as most Win32 UI...
  • jfo's coding

    Control.Invoke hangs on multiproc machines

    Jack asks: I couldn't find where to post the comment for the cross threading problem. While the solution seems to be Control.BeginInvoke/Control.Invoke, There seems is a known issue about Control.Invoke that can cause it to hang up in Control.MarshaledInvoke...
  • jfo's coding

    Whidbey help for multithreading woes: CheckForIllegalCrossThreadCalls

    A somewhat common programming error is to directly call back onto a piece of UI when you’re on the wrong thread. Consider this seemingly innocuous piece of code: System.Timers.Timer t = new System.Timers.Timer(); public Form1() { InitializeComponent...
Page 1 of 1 (3 items)