C#・WindowsForm関連

【C#】【Form】アプリの設定ファイル

■ はじめに 以下の関連記事で行った設定をファイル保存することについて、 ピックアップする アプリ状態を復元する仕組みを考える https://dk521123.hatenablog.com/entry/37889424 ■ 操作 値の設定 Properties.Settings.Default.【キー】 = 【設定値】; 例 …

【C#】【Form】PictureBox [11] ~ スクロールバー付きの画像表示を考える ~

■ はじめに PictureBox + HScrollBar / VScrollBar でのアプリ実装は大変なので、 別の方法を考える HScrollBar / VScrollBar ~ 独自スクロールバーの実装 ~ https://blogs.yahoo.co.jp/dk521123/38010582.html ■ サンプル 例1:シンプルなサンプル 画面…

【C#】【Form】PictureBox [9] ~ 画像を任意の角度で回転させる ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/37853430.html の続き。 画像を任意の角度で回転させる方法 画像を任意の角度で回転させるために、以下の方法がある [1] Graphics.RotateTransform()を使う => 以下の「■ サンプル」の「例1」を参照 [2] Mat…

【C#】【Form】 Tooltip [2] ~ 1つのPictureBoxに複数のToolTipを表示するには... ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/38051736.html において、PictureBox 1つで画像比較スライダーを実装したが 左側と右側で別のToolTip(ツールチップ)を表示したいので調べてみた。 ■ 対応案 * MouseMoveイベントで拾う * toolTipのActiveの…

【C#】【Form】PictureBox [8] ~ 画像比較スライダーをWindows Formで実装する ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/37846450.html で、Windows Formで画像比較スライダーを実装したが 今回は、別解として、PictureBox 1つで画像比較スライダーを実装してみる。 ■ サンプル 例1 using System; using System.Drawing; using S…

【C#】【Form】PictureBox [10] ~ 画像をレイヤー構造で扱う ~

■ サンプル using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; namespace SampleForm { public partial class Form1 : Form { /// <summary> /// オリジナルのビットマップ /// </summary> private Bitmap originalBitmap = …

【C#】【Form】画面遷移を考える ~ ApplicationContext ~

■ はじめに Form内での画面遷移において、以下のように画面を切り替える方法を考える ~~~~ Form1 => Form2 => Form3 ~~~~ 以下のようにForm1をメインに指定して、 Form1からForm2 に遷移した際に、Form1をCloseした場合、 プロセスは切れるので、For…

【C#】【Form】Panel / ScrollableControl

■ Panel API仕様 Panel https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.panel?view=netframework-4.8 ScrollableControl https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.scrollablecontrol?view=netframework-4.8 …

【C#】【Form】Form に関する色あれこれ

■ Color -> Brush への変換 Brush blueBrush = new SolidBrush(Color.Blue); https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.graphics.fillrectangle?view=netframework-4.7.2 ■ システムカラーを取得するには... SystemColors.ControlDark ht…

【C#】【Form】HScrollBar / VScrollBar ~ 独自スクロールバーの実装 ~

■ はじめに * HScrollBar / VScrollBar について、学ぶ => 大変... 補足:ScrollableControlについて * 独自スクロールバーは、とても大変なので、 ScrollableControlを継承させたクラスを作ることも検討した方がいいかも... http://wisdom.sakura.ne.jp/sys…

【C#】【Form】ComboBox ~ 複数コンボボックスを連動させるには ~

■ はじめに 複数コンボボックスを連動させることを考える 色々なスマートな方法があると思うが、オーソドックスに実装する 例 * 地方-都道府県-市・区 + 地方:関東、関西、東北、、、 + 都道府県:東京、大阪、、、 + 市・区:港区、横浜市、、、 ■ 注意点 …

【C#】【Form】ブラウザから自作Windowsアプリを起動するには

■ はじめに https://blogs.yahoo.co.jp/dk521123/13069605.html の続き。 今回は、「【2】ブラウザから自作Windowsアプリを起動するには」を行う。 ■ ブラウザから自作Windowsアプリを起動するには * 「カスタム URL スキーム」と「クライアント側へのレジ…

【C#】【Form】PictureBox [7] ~ 画像をコピーする・その2 ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/37857445.html で、画像をクリップボードにコピーしたが、 Graphicsで描画した図形も含めてコピーはできない。 今回は、Graphicsで描画した図形も含めてコピーする方法について記載する。 ■ 解決案 * コピー…

【C#】【Form】 DataGridView ~ ソート編 ~

■ はじめに DataGridView のソートについて、纏める 【1】 ソートを禁止するには * DataGridViewColumn.SortMode を、NotSortableに設定する サンプル this.dataGridView1.Columns["Age"].SortMode = DataGridViewColumnSortMode.NotSortable; 補足:DataGr…

【C#】【Form】 トグルボタン

■ はじめに * トグルボタン(ボタンを凹んだ)を実装する ■ 手順 【1】RadioButton (又はCheckBox)を追加 【2】 『RadioButton.Appearance プロパティ:Button』すればいい。 【3】 CheckBoxでも、同様な方法で表示可能。 補足:ボタンのサイズを変更する…

【C#】【Form】PictureBox [6] ~ PictureBox 内でMouseMoveイベントにより線を描画する ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/32877749.html で「例4:マウスを追いかける」を行ったが、 VS2017/Windows10で実行したらうまくいかなかったので作り直す ■ サンプル 例1:シンプルなサンプル using System; using System.Drawing; using …

【C#】【Form】キーイベント ~ KeyDown/KeyUp/KeyPress etc ~

■ キーイベント 1-1) KeyDown : キーダウン 1-2) KeyPress : キー押下 1-3) KeyUp : キーアップ 2) PreviewKeyDown : コントロールにフォーカスがある時にキーが押された場合、KeyDown イベント前に発生 ■ サンプル コントローラ構成 * Form + KeyDownイベン…

【C#】【Form】PictureBox [5] ~ PictureBox 内に画像を描画する ~

■ はじめに * PictureBox 内に画像を描画する方法を調べてみた PictureBox 内に画像を描画するには... * DrawImage() で描画する ■ サンプル * 以下のサンプルを載せる 【1】PictureBoxの画像内をクリックした点に、画像を配置 【2】 【1】の発展版・2点…

【C#】【Form】PictureBox [4] ~ PictureBox 内に文字列を描画する ~

■ はじめに * 以下について、考える 【1】 PictureBox 内に文字列を描画する 【1-1】マウスクリックで文字列を描画 【1-2】マウスクリックで文字列を描画(文字列を残す) 【2】 PictureBox 内に文字列をマウスで動かす 【2-1】実装案1:Graphic…

【C#】【Form】アプリ状態を復元する仕組みを考える

■ はじめに * Windowsアプリの状態(ウインドウ位置, サイズ etc)を復元する仕組みを調べてみた。 使い道 例えば、以下の関連記事のアプリ「画像比較スライダー」の状態(境界線の位置)を 保持しておきたい時などに使用。詳細は、以下の関連記事を参照。 Spl…

【C#】【Form】PictureBox [3] ~ マウスホイール で画像の拡大・縮小する ~

■ ポイント * 現在表示している点を中心として画像を拡大縮小する => 中心の点を原点へ移動し、拡大縮小後、元の位置へ移動する => 以下のサイトの説明が分かりやすい http://imagingsolution.blog.fc2.com/blog-entry-287.html ■ その他、学べる事 【1】マ…

【C#】【Form】PictureBox [2] ~ PictureBox を マウスで移動する ~

■ はじめに Windows Formで、以下の実装する。 仕様 [1] Panel内でマウス左をクリックし、Panel内のPictureBox をマウスで選択。その際、カーソルを変更。 [2] マウスを左クリックされている間は、そのPictureBox はPanel内を自由に移動する。 [3] マウスを…

【C#】【Form】ドラッグ&ドロップでファイルを開く

■ ドラッグ&ドロップに関するイベント 【1】 DragEnter 【2】 DragOver 【3】 DragDrop 【4】 DragLeave 【1】DragEnterイベント * ファイルがコントロールの境界内にドラッグされると発生 【2】DragOverイベント * ファイルがコントロールの境界を超…

【C#】【Form】 マウスホイールイベントの追加方法

■ マウスホイールイベントの追加方法 * デザイナーでは対応されていないので、以下の「■ サンプル」のように追加する。 ■ サンプル //ホイールイベントの追加 this.panel1.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.OnMouseWheel); pr…

【C#】【Form】タスクトレイにある常駐アプリの作成

■ ポイント Point1 * プロジェクトは、Windows Formのままでいいが、 Program.cs を以下の[常駐アプリ]のように書き換える [通常] Application.Run(new Form1()); [常駐アプリ] new Form1() Application.Run(); Point2 * NotifyIcon を実装する ■ その他の…

【C#】【Form】PictureBox [7] ~ 画像をコピーする・その1 ~

■ 大きな流れ 【1】 画像上にマウスで矩形を描画 【2】 【1】の領域の画像をクリップボードにコピー 【1】 画像上にマウスで矩形を描画 http://bbs.wankuma.com/index.cgi?mode=al2&namber=60074&KLOG=101 に記載しているロジックでいける 以下の4つの…

【C#】【Form】 NotifyIcon ~ ポップアップ通知を行うには... ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/37826442.html で、Javaでメッセージ通知したが、今度は、C#で実装する。 ■ 注意事項 【1】 Icon を設定しないと、ポップアップ通知が表示されない。 【2】 デスクトップ通知の文字列は限られる => 調べた…

【C#】【Form】OpenFileDialog

■ OpenFileDialog * ファイルを指定するダイアログ ■ 主なプロパティ InitialDirectory * 初回に表示するパス http://hiros-dot.net/VBNET2005/Control/OpenFileDialog/OpenFileDialog02.htm https://dobon.net/vb/dotnet/form/openfiledialog.html Multisel…

【C#】【Form】TableLayoutPanel ~ カルーセルをWindows Formで実装する ~

■ はじめに 画像をカルーセル表示するアプリを作る際に、 画像を整列させるために、TableLayoutPanelを使用する TableLayoutPanel * 表形式でコントロールを整列するために使用 ■ 使用上の注意 * 1セルに、1コントロールしか配置できない 対応案 * 1セルに複…

【C#】【Form】Splitter ~ 画像比較スライダーをWindows Formで実装する ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/37801875.html で、画像比較スライダーを扱ったが、今回は、Windows Formで実装する。 その際に、Splitter (仕切り線) を利用したので紹介する。 ■ Splitter * Windowsフォームを分割するためのもの ■ 主なプ…