jfo's coding

adventures in windows forms and wpf

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

    Keeping your UI Responsive and the Dangers of Application.DoEvents

    • 21 Comments
    What’s the difference between Application.Run and Application.DoEvents? Application.Run continually processes window messages for your application, raising events as necessary. Application.DoEvents processes all the window messages in the queue until...
  • jfo's coding

    Probably more than you want to know about keyboarding in Windows Forms….

    • 16 Comments
    The reason why keyboard handling is so complex, is because, well it’s just complex. Before a control can get called on the OnKeyDown/Press/Up event, we need to filter out several things Shortcuts which execute menu commands (e.g. Control+O on a MenuItem...
  • jfo's coding

    Notify applications where the form disappears from the taskbar on minimize

    • 14 Comments
    Jim asks: "I've been following your Windows Forms articles, and was hoping that you could post about the correct way to minimize a Windows Form to the tray. The ShowInTask property of the Form is mentioned in newsgroups, but the Form still shows...
  • jfo's coding

    Are you familiar with [ThreadStatic]?

    • 12 Comments
    If you're stuffing anything in thread local storage, you might be interested in the performance comparison between Thread.SetData and [ThreadStatic] . ThreadStatic is super-cool, if you have a static variable, you can make it static "per-thread" by...
  • jfo's coding

    More on "Avalon" RichTextBox

    • 11 Comments
    As promised , I learned more so I'm sharing. Last time I figured out how to stuff plain text into the RichTextBox, but that's not very "rich", is it? How do I put RTF (rich text format) into a RichTextBox? It turns out the support for this seems to...
  • jfo's coding

    Tracepoints are AWESOME!

    • 11 Comments
    So I was debugging a function this week that is called whenever my program is focused, which leads to a huge frustration when setting a breakpoint in it. (You know the moment you F5 your debugger, then ALT+Tab back, the focus logic strikes again and you...
  • jfo's coding

    Why is STAThread required?

    • 11 Comments
    Over the top of your Main method, you may have noticed this funny decoration: [STAThread] static void Main() { Several people have asked, what is this and is it this actually necessary? When the STAThreadAttribute is applied, it changes the apartment...
  • jfo's coding

    UseCompatibleTextRendering - Compatible with whaaaaaat?

    • 10 Comments
    There seems to be quite a bit of confusion around this little old flag that has cropped up in VS 2005. In Windows Forms 2.0, we added support for drawing GDI text. At first we had grandiose plans of poking and prodding at the DrawText API such that...
  • jfo's coding

    DataGridView FAQ now posted

    • 10 Comments
    As promised : here's the link to the DataGridView FAQ . There's also a set of demo applications . There are whole bunch more FAQs up on Windows Forms.NET with quite a bit of good info in them. <shameless ask for plug> Please check the FAQs...
  • jfo's coding

    Going from Blue to Tan

    • 9 Comments
    Brett asks: During the PDC we chatted about how to make the toolbar have the same look and feel that the toolbar in Visual Studio has (namely the tan gradients as opposed to the blue ones) and you mentioned you would be posting on that soon ......
  • jfo's coding

    Suggestions for making your managed dialogs snappier

    • 8 Comments
    Diagnosing Performance Problems with Layout So you’ve built up your complex form, and starting it or resizing it is slightly more exciting than watching paint dry. It could very well be that the way everything is hooked up, the dialog is fighting layout...
  • jfo's coding

    Handling DragDrop in 5 min

    • 8 Comments
    Lets do a really simple sample, drag the text from a link label into a text box. Once you understand this sample, you should pretty much be able to rock and roll on any drag/drop. We're going to mouse down on the label and drag it over the text box...
  • jfo's coding

    You gotta learn to let it go: Top 4 memory leaks

    • 7 Comments
    I got a note from Mukund, who is investigating a memory leak problem. Hi Jessica, Is it true that you cannot explicitly destroy objects in VB.NET? Mukund, the truth is that the CLR both giveths and takeths away the memory for you. Once a whole...
  • jfo's coding

    Love for Lucida 14 and a brand new font for VS

    • 6 Comments
    Don Box gave a great channel 9 interview on how to give a technical presentation. 11 min and 30 seconds into the talk, Don had me breaking into a fit of giggles when he professed his love for Lucida Console 14. "If you're going to give a technical...
  • jfo's coding

    Goodbye Redmond

    • 6 Comments
    In January, I'll be hanging up my keyboard for a while as I move to Australia. I have really enjoyed my work at Microsoft; particularly with my team, which is filled with smart, talented folk who really care about doing the right thing. This will be...
  • jfo's coding

    New keyboard APIs: KeyEventArgs.SuppressKeyPress

    • 6 Comments
    Here's the scenario: In 1.1 whenever someone types one character you want to replace it with another. (If you're thinking password textbox there's a TextBox.UseSystemPassword=true flag you should use). So you sync TextBox KeyDown, set handled to...
  • jfo's coding

    New sample: SplitButton

    • 6 Comments
    Now that the toolstrip has a split button, everyone seems to want one for their form too. While you could tweak out the ToolStripRenderer to do this, it's probably just best to use the ButtonRenderer class on your own custom button. The following sample...
  • jfo's coding

    Getting started with Windows Forms 2.0

    • 5 Comments
    Here's a great set of stuff to get you started using some of the new controls/features in Windows Forms 2.0! Client Settings [ FAQ | Feature Page ] Data Binding [ FAQ | Sample and Demo | Feature Page ] DataGridView [ FAQ | Sample and Demo | Feature...
  • jfo's coding

    Visual Studio Image Library

    • 5 Comments
    A customer from Las Vegas DevConnections asks: It seems like, but I may be mistaken, that you said something about posting some new set of toolbar icons on your blog? Was I in a Vegas-induced stupor or did you really say that? Yes, I really,...
  • jfo's coding

    Keeping yourself out of trouble using SystemEvents

    • 5 Comments
    Why do we need both SystemEvents.UserPreferenceChanging and SystemEvents.UserPreferenceChanged? The idea behind this is that if you have some object cached (say a brush based on a SystemColor), you would change the cache on UserPreferenceChanging....
  • jfo's coding

    Tips for Debugging into System.Windows.Forms (and other managed code)

    • 5 Comments
    There are just some times when it is super handy to see when function X on the base class has been called with a certain value. The best example I have of this is debugging layout. 99.99% of all sizing/location logic routes through one single method in...
  • jfo's coding

    Updating your RichTextBox safely

    • 5 Comments
    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

    Creating a custom control in Winforms - Part 5 Default Values for interesting datatypes

    • 5 Comments
    Specifying interesting datatypes in the DefaultValue attribute Ok so last time we got off easy with a boolean property – what about something more complex – for example a Color? How can that be specified? The DefaultValueAttribute has another overload...
  • jfo's coding

    Sometimes I F5 when I meant to just compile.

    • 5 Comments
    Usually such a mistake is followed by a "noooooooooooooooooooooooooooooooooooo!" and quiet resignation to wait for my app to build and get to the point under the debugger where I can stop it. So here's a super-handy tip for larger projects I learned...
  • jfo's coding

    How can I figure out how large my class is?

    • 5 Comments
    Phil asks: "Your last post mentions using Marshal.SizeOf to get the byte size of a type that can be marshalled. I would like to know the amount of space taken up by an object that cannot be marshalled. For example a custom control, so I can then...
Page 1 of 7 (159 items) 12345»