danpapa blog

趣味のプログラミング等について

SWD4CS ーコントロールの配置/選択/削除ー

コントロールの配置
画面左の「ToolBox」から配置したいコントロールを選択
f:id:danpapa_hry:20220327055641p:plain

画面中央「Designe」のフォーム又はコントロール上で左クリック
f:id:danpapa_hry:20220327060203p:plain
クリックしたところに配置されます。

注意して欲しいのは、コントロール上にコントロールを配置する際、制限を掛けてないので意図しない配置になるかもしれません。
f:id:danpapa_hry:20220327060936p:plain

コントロールの選択
画面左の「ToolBox」で一番上の空欄を選択
f:id:danpapa_hry:20220327061308p:plain

選択したいコントロール上で左クリック
f:id:danpapa_hry:20220327061452p:plain

複数選択する場合は「Ctrl」+ コントロール上で左クリック
f:id:danpapa_hry:20220327061707p:plain
複数選択しても移動やプロパティの編集は同時にできません(削除は可能)

選択できない場合(いくつかあります)

  • コントロール右上に「▼」のマークがあるものは、このマークをクリックしてください。
  • PropertyGridは上下のSplit部の端をクリックすると選択しやすいです

f:id:danpapa_hry:20220327161550p:plain

コントロールの削除
選択状態のコントロールを削除する方法は2つ

  • メニューの「Edit」「Delete」
  • 「Ctrl」+「Delete」キー

f:id:danpapa_hry:20220327062715j:plain

「SWD4CSについて」に戻る

SWD4CS ー「開く」/「保存」ー

「開く」(designer.csを開く)
これは2つの方法があります。
1,メニューから開く
2,コマンドラインへファイルパスを渡して開く
です。それでは説明していきましょう。

メニューから開く

  • Menuの「File」「Open」を選択

f:id:danpapa_hry:20220326200242j:plain

  • 開きたいdesigner.csを選択

f:id:danpapa_hry:20220326200449j:plain

コマンドラインへファイルパスを渡して開く

f:id:danpapa_hry:20220326201153j:plain

danpapa-hry.hateblo.jp


「保存」
Menuの「File」「Save」を選択
f:id:danpapa_hry:20220326202718j:plain

保存には2種類の動作があります。

  • designer.csを開かずに保存すると新規保存
  • designer.csを開いて保存すると上書き保存

「SWD4CSについて」に戻る

SWD4CS ーVisualStudioとの互換性テストー

互換性テスト
今までのSWD4CSはVisualStudioで編集したdesigner.csは読み込めませんでした。これはdanpapaの手抜きによるものですw
いつまでも独自フォーマットを使用するつもりはなく、ある程度動作確認が取れたら、対応させようかと・・・
まぁ、少し手が空いたのでやってみました。。。めちゃくちゃ面倒。1か月くらい掛かってしまいましたが、何とかそれらしくなってきたようです。

出来ること(多分)
・以前のSWD4CSで編集したdesigner.csの読み込み(若干レイアウトが崩れるかも)
・VisualStudioで編集したdesigner.csの読み込み。まだ対応していない部品はたくさんありますが、気が向いたら。。。

テスト動画
youtu.be

SWD4CS ーイベント処理のテストー

イベント処理
これ、実際手で書いてると面倒なんですよねぇ。。。ってことで、VisualStudio等みたいに自動で追加する機能を考えていたんです。プログラムが面倒になるなぁって思いながら・・・横着なdanpapaは思い付いてしまいました。思ったより簡単に作れそうなので、とりあえずテストです。

まだ使いにくいですが、何となく動きそうです。ただし、VisualStudio等の書き方と変わってしまうのが・・・まぁ気にしないw
とりあえず動画
youtu.be

SWD4CS ーおすすめの設定ー

おすすめの設定
SWD4CSについてのコメントで、「VSCode拡張機能でデザイナとVSCodeを統合できないか?」というようなコメントを頂きます。確かにその方がスマートなんですが、danpapaのスキル不足で・・・ということで考えたのがこれです(完全に手抜きです)
VSCode拡張機能「Open in Editor」を使って、VSCode上からdesigner.csをSWD4CSで開く。(文章で書くと分かりにくいですね)

設定方法
まずは「Open in Editor」をインストール
f:id:danpapa_hry:20220225203356j:plain

VSCodeの「設定」ー「拡張機能」ー「Open in External Editor configuration」ー「Alt-Editor:Binary」ー「settings.jsonで編集」をクリック
f:id:danpapa_hry:20220225203937j:plain

上から2行、これを追加しました
"alt-editor.binary": "C:/Users/HRY/Desktop/GitHub/SWD4CS/bin/Debug/net6.0-windows/SWD4CS.exe",
"alt-editor.args": "{filename}",
f:id:danpapa_hry:20220225204137j:plain
1行目はSWD4CSをビルドした場所なので、環境に合わせて変更してください
設定はこれだけです。

使い方
VSCode上で「~.Designer.cs」を右クリック
・「Open in External Editor」をクリック
設定があっていれば、SWD4CSでDesigner.csファイルを開けるはずです。
(もちろん、VisualStudioで作成したファイルは開けません。新規で作成したもの又は、SWD4CSで編集したものだけです)

動画はこちら
youtu.be

「SWD4CSについて」に戻る

SWD4CSについて

SWD4CSとは?
SWD4CSはSimple WinForms Designer for C#の略です。
Visual Studioが重くてVSCodeで開発がしたいと思い、danpapaが作成しました(作成中ですが。。。)

開発環境
当初はVisual Studio 2022(DotNet6.0 + C#)で開発していましたが、現在はほとんどVSCode + DotNet6.0(C#)で開発しています。

開発環境のセットアップ

  • ここDotNet SDKをダウンロードし、インストールします
  • ここVSCodeをダウンロードし、インストールします

(インストール、設定、C#拡張機能等は詳しい情報がすぐ見つかるはずなので省略)

SWD4CSのBuild

  • GitHubここからソースコードをダウンロードとかして下さい
  • ソースコ ードのフォルダをVSCodeで開きます
  • VSCodeのターミナルに「dotnet run」で実行できるはずです。danpapaは複数のファイルを一つにまとめたいので「dotnet publish -c Release --self-contained true -r win10-x64 /p:publishsinglefile=true」を使ってBuildしています

SWD4CSの使い方
(以下はこれから記事を追加していく予定です。)

機能はすごくシンプルなので、これくらいしか説明することはないですねw

SWD4CSの追加機能

  • ControlTree
  • Events テスト
  • Designer.csのバックアップ/リストア
  • 他コントロールの追加
  • VisualStudioとの互換性 テスト

現状欲しい機能がないので、とりあえずこれくらい(実現できるかは不明ですが。)

SWD4CSを使ったソフト開発

まぁ、動作確認の為に使ってみないと。。。(バグはまだあるはずです)

関連リンク
github.com
youtu.be
youtu.be
youtu.be

VSCode(C#) + WinForms その3

SWD4CS

先回の記事
danpapa-hry.hateblo.jp

今回はプロパティについてです。
先回まではDataGridViewというコントロールで表示していました・・・がPropertyGridコントロールという便利なものがあるのに気が付きませんでしたw

これ、VisualStudioにあるプロパティを表示するものとほぼ同じ機能を・・・ま、とても便利な機能なので、差し替えました。
スクリーンショットはこれです
f:id:danpapa_hry:20220206210852p:plain
思い付きでプログラム書いてると、このような修正が沢山出てきますねw
プロパティの表示はこれで解決できましたが、全てのプロパティに対応出来た訳ではありません。少しづつ追加していく予定ですが・・・

読書き対応プロパティ(タイプ)

  • System.Drawing.Point
  • System.Drawing.Size
  • System.String
  • System.Boolean
  • System.Int32
  • System.Windows.Forms.AnchorStyles
  • System.Windows.Forms.DockStyle
  • System.Drawing.ContentAlignment
  • System.Windows.Forms.ScrollBars
  • System.Windows.Forms.HorizontalAlignment
  • System.Drawing.Color

とりあえずこんなところでしょうか。(まだ不具合はあるかと思いますが。。。)
このなかでSystem.Drawing.Colorというやつが一番面倒でした。いい方法が思いつかず、ひたすら単語のコピペw

まぁ随分使いやすくなってきたと思いますが、ソースコードはぐちゃぐちゃですw
github.com
プロパティはこれくらいにして(必要であれば追加)、次はコントロールの階層表示にでも取り掛かりますかねぇ。。。