.NET WinForm

enum を ComboBox に表示する (文字列で置き換えない)

もうちょっと実験したらまた不思議なことが起きたのでメモ。 enum を直接コンボボックスに表示する場合です。一つ前のエントリとの違いは文字列で置き換えないってところ。こっちが先だろって一人つっこみしつつ…。表示したいのはこれ。 public enum Gender …

enum を文字列で置き換えて ComboBox に表示する

先週は、DataBindingで大ハマリしてました。データベース知らない→ADO.NET知らない→DataBindingあまり使わないって流れで、DataBindingをよく知らないのが原因。なので、ADO.NET本を借りてきてちょっと勉強中です。以下は WinForm の DataBinding についてで…

ContextMenuStrip の Left と Top

ContextMenuStrip は Location がないのに、Left と Top はあって、しかもその値はクライアント座標じゃなくてスクリーン座標だった…。ずいぶんはまった(T-T) MSDNにちゃんと書いておいてよ…。やろうとしてたことは、DataGridView のセルで ContextMenuStrip…

DataGridView + SortableBindingList = 楽

久しぶりにC#、WinFormの話題。ただいまC#。WPF時代到来ですがWinFormです。 DataGridView にオブジェクトを載せると、列のヘッダをクリックしての自動ソートができなくてがっかりします。これをカイゼン! VisualStudio2005 は、データベースのフロントエン…

FlowLayoutPanel での DragDrop サンプルコード

http://siokoshou.googlepages.com/FlowLayoutPanelでのDragDrop、だいぶ前に書いてからまだだらだらやってたんですが、いい加減飽きてきました(^^; 何かの参考になることもあるかもしれないので、コードを公開します。なぜか2000行超えてます。なんでこんな…

カーソル

http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.cursor(VS.80).aspx によると「カラーのカーソルはサポートされていません。」ってあるけど、カラーで出たんだけど…。ん〜。

帰ってきた XML Notepad

Drag and Drop の参考資料を探してたら、XML Notepad 2006 なんてのを見つけた。懐かしい名前だ…。 .NET2 WinForm で作られてて、ソースつき。 このコード、なかなか凝ってる。アクセスビリティにまじめに対応してるコードなんてハジメテミタ。2Paneで同時ス…

ZedGraph

sourceforge で C# 使ったプロジェクトを見てたらグラフを描くコントロールを見つけました。http://sourceforge.net/projects/zedgraph/引用。「ZedGraph is a class library, user control, and web control for .net, written in C#, for drawing 2D Line,…

Margin

WinForm の Margin って、つまりデザイン時のスナップ線の長さを指定するものなのね。http://msdn2.microsoft.com/ja-jp/library/3z3f9e8b.aspx過度の期待してた…。でも Padding は神機能だ。(追記)と思ったら、FlowLayoutPanel のような自動でレイアウトし…

.NET2.0のテキスト レンダリング エンジン

.NET2.0のWinFormのドキュメントを読んでいると、あちこちにCompatibleTextRenderingの文字が出てきて、以前と文字を書く処理が何か変わったってのは分かるんだけど、これが何を意味しているのかはっきり書いてあるドキュメントを見つけることができないでい…

Formの位置を記録する(アプリケーション設定 その1)

Formの位置をユーザーごとに記録しておいて、次回起動時に同じ位置に表示する、みたいなことが.NET2.0から簡単にできるようになった。位置の記録と読み出し程度なら、ちょちょっとマウス操作して数行のお決まりのコードを貼り付けるだけでできてしまう。Visu…

FlowLayoutPanelのPadding

FlowLayoutPanelはPaddingをうまく扱えてないっぽい。 using System; using System.Drawing; using System.Windows.Forms; namespace Flow { public class Form1 : Form { private Button button1; private FlowLayoutPanel flowLayoutPanel1; private Rando…

TreeGridView

http://blogs.msdn.com/markrideout/archive/2006/01/08/510700.aspxこれこれ、こういうコントロールが欲しかった! 最近はやり(?)のListViewとTreeViewが混ざったコントロール。iTunesで使ってるようなやつと言えば分かりやすいかな。スクリーンショットを…

アプリケーションのアイコン

WinFormアプリケーションのアイコンを変えようとして、デフォルトの App.ico をいったん old.App.ico にして、新しいアイコンファイルを App.ico にした。 で、コンパイルしたけど、アイコンが変わらない...。あれ?なんで?と思ってプロジェクトのプロパテ…

5ボタンマウス対応

id:siokoshou:20050519の日記で、ロジテックの6ボタンマウスを買ったことを書いたけど、その後いろいろあって、マイクロソフトの5ボタンマウスも手に入れてしまった。 マイクロソフトマウスのほうが軽いので、今はこっちに乗り換えてしまった。PC起動から時…

dpi

dpi非依存なGUIアプリは難しい!面倒!GUIにあんまり関わったことがなかったのでGUIにいろいろ挑戦してるけど、dpi依存の問題は特に面倒ですね。 WindowsXPだと96dpiと120dpiが選べるようになってるのに、120dpiだとまだまだきちんと見えない部分があるアプ…

FAQまとめ

C# FAQ 日本語版 http://www.gotdotnet.com/team/ja/team/csharp/learn/faq/default.aspx オリジナル http://msdn.microsoft.com/vcsharp/team/faq/default.aspx Windows Forms FAQ MS http://msdn.microsoft.com/smartclient/community/wffaq/default.aspx …

続 Bitmap( Stream stream )コンストラクタ

昨日の記事を訂正します。 using でリソースの Stream を開放しても「通常は」きちんと動きます。コンストラクタで Images.Add をやっても問題なしです。 問題を再現させる小さなサンプルを作ってみたんですが、全然再現しなくて、数時間格闘してしまいまし…

Bitmap( Stream stream )コンストラクタ

昨日書いた問題に続けてまた落とし穴に落ちました。 ImageList に bitmap を追加するのに、こんなコードを書きました。 1: System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly(); 2: using ( Stream stream1 = asm.GetManif…

リソースが見つからなくて例外発生

Visual Studio でボタンにイメージを設定しようとして落とし穴にはまりました。 デザイナ画面でボタンの表面にイメージが表示されたので実行してみると、実行時にリソースが見つからないと言われて例外発生。 調べてみると、↓と同じ原因でした。http://homep…

ListBoxのオーナードロー

ListBox のオーナードローを使って、ListBox の中にたくさんのコントロールを整列表示したいなぁと思っていろいろ調べてみました。これまで Panel を継承して、その中にコントロールを整列表示していたんですが、同じことがもっと簡単にできるかな?と思った…

リストビューの列の幅を自動調節する

ListViewの列の幅を自動調節する - .NET Tips (VB.NET,C#...)便利。でもまさに裏技。ってか、こんなの覚えてられないって。.NETでは、こういうのから脱却して欲しかった。

Windows フォーム 1.x を使用したコモン ダイアログ ボックスの拡張

実用的ですね。いつか使うかもしれないので、メモ。 Extend the Common Dialog Boxes Using Windows Forms 1.xLearn to Develop with Microsoft Developer Network | MSDN

フォームのロード時にフォーカスを当てる

どぼんさんの掲示板で発見。http://www.atmarkit.co.jp/fdotnet/dotnettips/226winloadfocus/winloadfocus.html要約: フォームのコンストラクタかロードイベントで this.ActiveControl = this.button2; のようにする。なるほど、できた!

変わった形のボタンを作る

枠がない丸いボタンが欲しくなった。ツールバー上のボタンのような動作をして欲しい。 だんだんマニアックな領域に深入りしていることには気づいているけど、楽しい。 それでいて面倒なことはやっぱりしたくない。フレームワークを調べると、コントロールを…

Longhorn風グラデーションのサンプル

Longhornのスクリーンショットを見ると真ん中が明るくて両端が暗いグラデーションが印象的。色がダークなメタリックで、都会的なクールな雰囲気を出しててカッコイイ。その上に載ってるアイコンが変で格好悪かったけど、最新のスクリーンショットではアイコ…

ToolTipをつける

http://ukamen.hp.infoseek.co.jp/Programming1/ToolTip/index.htm宇宙仮面さんのところを見ると分かるけど、1ラインも書かずにToolTipがつけれる。 ツールボックスからToolTipコントロールをドラッグ&ドロップすると、各コントロールのプロパティに「〜のT…

アンビエントプロパティ

アンビエントプロパティって親のプロパティを真似するんだから、フレームワークにしてみれば、親が変わったときにアンビエントプロパティが変更されるって当然のことですね。 今さら思った。(おバカ)

アンビエントプロパティはいつ反映されるか?

アンビエントプロパティを利用して、いつコントロールのFontが変更されるかってのを調べてみました。FormだけFontを変更して、子コントロールでOnFontChangedやら何やらにブレーク張って追っかけです。 ほぼ、コントロールの生成過程の調査です。 コントロー…

オートサイズなコントロール

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformscontrolclasscreategraphicstopic.aspここにオートサイズなラベルっぽい例が載ってますね。パディングのおまけ付き。 このごろ、こ…