WinForms

コンピュータ

C#パスを使って図形を描く「ファイルアイコン」

ファイルアイコンをパスを使って描画してみます。 ソースコード ファイル名:Form1.cs using System.Drawing.Drawing2D; namespace FileIcon; public partial class F...
コンピュータ

C#パスを使って図形を描く「フォルダーアイコン」

フォルダーアイコンをパスを使って描画してみます。 ソースコード ファイル名:Form1.cs using System.Drawing.Drawing2D; namespace FolderIcon; public partial clas...
コンピュータ

C#のWinFormsでシステムアイコンを読み込むサンプル

SHELL32.dll内にシステムアイコンが埋め込まれているので、そちらからアイコンを取り出して表示するサンプルになります。 プロジェクトの作成 .Net SDKのバージョン8 mkdir SystemIconSample cd Syste...
スポンサーリンク
コンピュータ

C#のWinFormsでZipファイルのコメントを編集する。

.NETのZipArchiveがいつの間にかコメントのプロパティが出現していたので(昔からあった?)Zipファイルのコメントを編集するフォームを作成してみました。 ソースコード ファイル名:Program.cs using System.I...
コンピュータ

C#のWinFormsでINotifyPropertyChangedを使ってコントロールとデータバインディングしてみる。

WPFでINotifyPropertyChangedを使ってみたことがありました。 その後にもっと便利なReactiveProperyを知ったため、長らく忘れていました。 正直MVVMなWPFは小規模なプログラミングだと面倒を感じ、WinF...
コンピュータ

ファイルをバイト配列に読み込む実験「FileStream.ReadとParallel.For」

SSDに保存されたファイルサイズが216MBのPNG形式画像ファイルがありまして、これをWinFormsのPictureBoxで表示するプログラムを書きます。 // パターン0 using FileStream fs = new(fileN...
コンピュータ

C#のWinFormsでSystem.DrawingとMagick.NETとOpenCVSharpでPNGファイルのデコード速度を比較

手作りのソフトなので計測なので精度は今一つですが、System.Drawingが一番速い結果になりました。 System.Drawing:22ms Magick.NET:39ms OpenCVSharp:33ms Windows環境で実行し...
コンピュータ

C#のWinFormsでファイルマネージャを作る3。「サムネイル表示の高速化」

ListViewの動作が遅い原因を探ってみたところ、オーナードローでの描画にサムネイル画像の用意が間に合っていないことが原因でした。 VirtualModeで表示部分だけの描画される動作も、そもそも描画の準備が間に合っていないためスクロール...
コンピュータ

C#のWinFormsでToolStripなToggleButtonのサンプル

スライドスイッチみたいな見た目を想像しましたが、押しボタンタイプの見た目です。 ソースコード namespace ToolStripToggleButtonSample1; public partial class Form1 : Form...
コンピュータ

C#のWinFormsでファイルマネージャを作る2。「大きいサムネイル」

前回作成した内容で使ってみたのですが、目的が画像や動画の選択ですので、ファイルの一覧で画像の内容が目視出来たほうが良いことに気が付きました。 ついでにGIMPの.xcfやPhothoShopの.psd及び動画の.aviや.mp4などの内容も...
コンピュータ

C#のWinFormsでファイルマネージャを作る。「試作編」

少しずつ調べていた機能がだいぶ溜まったので、以前から作ろうと思っていたファイルマネージャ(劣化版エクスプローラー)を作成したいと思います。 アプリケーションのファイルの一覧からGIMPなどの画像加工のアプリケーションに画像ファイルをドラッグ...
コンピュータ

C#のWinFormsでリストビューを試す。「アイテムにアイコンを表示」

カレントディレクトリのファイルの一覧をリストビューで表示するプログラムを作成しました。 リストビューのアイテムがファイルの場合とディレクトリの場合で別のアイコンが表示されるようになっています。 namespace ListViewSampl...
コンピュータ

C#のWinFormsでコンボボックスのイベントを確認する2。「バリデーション」

コンボボックスはプルダウンメニューの様な選択肢を選択する機能と文字を入力するテキストボックスのような機能が複合されたコントロールです。選択と入力で保持する値が別の方法で変更される可能性があり、イベントの処理を考えると思考を放棄したくなります...
コンピュータ

C#のWinFormsで絵文字を描くサンプル。「フォルダを描く」

System.Drawing.GrapihcsのDrawStringメソッドを使うと画像に文字書くことが出来ます。 その際フォントを指定することになりますが、絵文字を持っているフォントを指定し、描きたい絵文字を文字コードに指定すると、絵文字...