Learn to use the rich set of controls in the .NET Compact Framework, including the DataGrid control, the TreeView, and other advanced Windows controls. This sample chapter discusses reference types, the object-oriented features of C#, and exception handling.
but Windows.Forms sucks.
There is no decent layout management and no sufficient information to write it yourself. Positions and sizes are integers, and designing forms that look well with different font sizes is next to impossible. Also there is no consistent Model/View/Controller pattern like in Swing.
I rather develop in wxWindows.
Technology is nice but this doesnt add anything new.
wxWindows does.
Which is why Qt# or Gtk# is a much better choice.
“Technology is nice but this doesnt add anything new.
wxWindows does.”
Just to satisfy the curiosity of somebody mostly ignorant of wxWindows – could you explain the “new” which wxWindows adds?
Is the wx.Net project still going forward?
What about AutoScale?
I do think Winform’s layout management is inferior to Swing’s. Nonetheless, I also believe that the layout management in Swing is rather unwieldy.
Also, what’s the advantage of having screen coordinates in double or float as opposed to int?
Talk about an oxymoron!
Wait. Win.Forms has no layout management? In addition to generally sucking, the lack of layout management was one of the weaknesses of MFC as well. Not only did this suck for developers (who had to write layout managers themselves) but also for users, because MFC windows didn’t respond well to resizing and font-size changes. You’d think they’d get it right this time. They really need to fire all the people who had anything to do with the Win32 API…
Apparently, there are a couple of C# layout management wrappers on SourceForge. And Borland’s C# libs will probably have excellent layout management, like all its previous products.
I feel like every toolkit has major limitations so the ultimate solution is to program something that doesn’t need a GUI until there are better solutions! I mean I want a .NET UI toolkit which is portable, integrated into a .NET RAD IDE like #D because of form designing and has no licencing issues like QT
the next VisualStudio/.NET framework features tons of improvements, layout management being one of them
http://msdn.microsoft.com/vstudio/productinfo/roadmap.aspx
<sarcasm> Tk is the best GUI tool kit. It has three layout managers, Grid, Pack, and Place. Let us not forget all those nice looking widgets. </sarcasm>
I just find it so amusing that Unix people would care so much that the forms “suck” in Windows. When have Unix people cared that it is impossible to make a button move a quarter of a milimeter to the left when you change the form size? For people who supposedly are much more concerned about functionality than looks, there is quite a bit of criticism. As with Swing, it sucks. It was an uglier bandaid solution to the already ugly AWT solution Sun provided. It is doomed. Sun knows it. IBM knows it. So please do not bring Swing into the conversation.
Remember, this is <u>OS</u> News. Not every one here is a “Unix” person.
Also, some of us “Unix” people do have the sad misfortune of having to work with Windows in our jobs 😉
“For people who supposedly are much more concerned about functionality than looks”
Don’t make over simplistic generalizations, it’s a sure way to loose an argument. There isn’t any giant political body one has to join before being allowed to use a Unix variant. I assure you that the user base is both made up of individuals with a wide variety of opinions, and that some of them, such as myself, are quite superficial when it comes to appearance over functionality.
> So please do not bring Swing into the conversation.
Yeah, agreed. Swing sucks major donkey.
Since UNIX people are all geeky programmers (sarcasm) they care about things that make programming easy. Manual widget layout is not easy, which makes UNIX people mad.
Seriously, though, layout management isn’t so much about looks (though a lot of UNIX people care about looks!) as correctness. The programmer mentality abhors hard-coded values. Fixed widget layouts smack of hard-coded values. As a UNIX user, I care about automatic layout management because of my special requirements. My screen’s resolution is 133dpi, which means that my fonts have about 77% more pixels. Qt’s layout managers mean that KDE’s UI handles my larger fonts better than Windows’ UI does.
As for Swing, its implementation might be poor, but the API has some striking ideas. Its a little over-engineered, but there is some excellent API design in there.
The new tools will be polished in future releases.
Is the wx.Net project still going forward?
It is still going strong, although releases are a bit behind.
A couple of new developers have also been contributing regularly; the wrapper is almost complete.
The problem with Layouts is, they are so complex to program, you generally depend on visual GUI tools to make the job. But these tools are so conterintuitive that it is always dificult to master them, and when the time comes to make changes to what you have done, you have to rearrange every from cero again to add new controls or change some positions or sizes in the layout. You loose presious time with it. The best tool would let you define the positions, sizes and contraints (anchors) of the controls a la delphi (it is, as if there where no layouts), and the generate or modify the code translating what you have done visualy to layout semantics, but I have yet to see such a tool.
What is wrong with giving people absolute positioning for a quick hack, yet having the ability to do sophisticated language-independent layouts if you want to?
And using JBuilder to do layouts is not exactly rocket science. It might have a lot of quirks, but once you get used to it you can quickly design resolution- and language-independent forms.
I agree that swing performance is not that great and that it is sometimes too complicated. But that is no excuse.
About AutoScale: it is only useful if all your fonts grow the same amount and the text in the labels and buttons does not change, so its usefulness especially for localized forms is very limited.
What angers me the most is that the Windows.Forms.Control class does not even have the nessecary *infrastructure* to implement layout management. There is no clean way to find out how large e.g. a Button or a Label “wants” to be, such as getPreferredSize() in Swing. This is simply unexcusable.
Windows.Forms does have layout management, it’s just different from the way SWING and GTK do it. Personally I find Windows.Forms much simpler and it give better looking layouts. It’s basically the same as the Delphi layout approach. I’ve struggled with SWING with regard to layout and I’ve ended up with ugly looking forms.
And as for MVC, SWING completely over does it which is one reason why it is so laborious to write GUI apps in SWING. I think the likes of Windows.Forms and Delphi take a much more prgamamtic and ultimately productive approach and permit programmers to chose how they want to implement rather then forcing them to use MVC.
I’ve programmed in SWING, Delphi, Windows.Forms and a little bit of GTK. Many of you I suspect have only programmed under one framework and therefore do no appreciate the differences.
Damn,
I really thought they’d have fixed this since VS 6.0. Are you sure they don’t have it? Yeah, I’m still stuck on it. I’m still not up on my .NET stuff
This is a surprise. That’s one reason why I love QT. I use it for windows (the NC edition). The spacers and auto-laout management is great. I don’t know much about GTK…though.
Methinks its time I tried out VS 7.0 and the rest.
Yamin