Visual studio 入門
Transcript of Visual studio 入門
![Page 1: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/1.jpg)
Visual Studio入門
森理 麟(moririring)
![Page 2: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/2.jpg)
自己紹介
森理 麟(@moririring)● 職業 : ゲームプログラマ
● HP : 森理 麟(moririring)のHP● ブログ : 森理 麟(moririring)のプログラマブログ
● VSハッカソン倶楽部代表、EffectiveC++読書会
運営、MetroStyleDeveloperスタッフ、
TDDBCTA、わんくま同盟スタッフ
● MicrosoftMVP for C#
![Page 3: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/3.jpg)
質問について
海外のイベントに参加して、参加者と発表者の質問のやりとりが非常に洗練されていると思った。
わからない場合は参加者がバンバン質問して、発表者はドンドンそれに答えていく。
うまく出来るか分からないけれど、簡単なルールなので、どんな小さいことでも、疑問を持ったら質問してください。
![Page 4: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/4.jpg)
今日の環境と目的
説明に使用する言語はC#、アプリケーションはWindowsForm
Visual Studioや.NET Frameworkのバージョン、言語仕様や環境に依存する話は極力なし
初めての人が、兎に角Visual Studioをさわってアプリを作ってみたくなることが目標。
![Page 5: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/5.jpg)
アジェンタ
● とりあえずアプリを作る
● アプリを効果的に見なおす
● アプリをもっと効果的に見なおす
![Page 6: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/6.jpg)
とりあえずアプリを
作る
I make the application.
![Page 7: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/7.jpg)
それでは
細かいことは後にして、早速、簡単なアプリを作ってみます。
![Page 8: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/8.jpg)
作るアプリ
ファイルを選択して中身がテキストなら表示するアプリ
![Page 9: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/9.jpg)
DEMO1
ライブコーディングで作っていきます。
private void button1_Click(object sender, EventArgs e){ openFileDialog1.ShowDialog();}private void openFileDialog1_FileOk(object sender, CancelEventArgs e){ textBox1.Text = openFileDialog1.FileName; StreamReader sr = new StreamReader(openFileDialog1.FileName); textBox2.Text = sr.ReadToEnd();}
![Page 10: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/10.jpg)
修正
とりあえずアプリは完成しました。
それでは、1つずつ見なおしていきましょう。
![Page 11: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/11.jpg)
アプリを効果的に
見なおす
Effective check for the application
![Page 12: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/12.jpg)
こだわり #1 ボタン
他のウィンドウが開くボタンは、表示に三点リーダーを使う。幅は自動に任せると楽。
【 表示 】○ : 「...」←ドット三点
× : 「…」←三点リーダー
【 パラメータ 】AutoSize = True;AutoSizeMode = GrowAndShrink;
![Page 13: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/13.jpg)
こだわり #2 一行テキストボックス
読み取り専用の場合、テキストボックスに限りReadOnlyを使う。普通はEnabled。
【 パラメータ 】○ : ReadOnly = false;× : Enabled = false;
![Page 14: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/14.jpg)
こだわり #3 ファイル選択ダイアログ
ファイル選択ダイアログは選択させるファイルの種類が決まっていれば必ずそれを設定しておく。
【 パラメータ 】Filter = "txtファイル|*.txt";
![Page 15: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/15.jpg)
こだわり #4 複数行テキストボックス
複数行テキストボックスはスクロールバーを両方につける。Bothの場合自動切り返しに注意する。
【 パラメータ 】ReadOnly = false;ScrollBars = Both;WordWrap = false;
![Page 16: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/16.jpg)
こだわり #5 ファイルロード
全テキスト読み込みは専用関数があるので、そちらを使った方が楽。エラー処理までやってくれる。
【 パラメータ 】○ : File.ReadAllText× : StreamReader
![Page 17: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/17.jpg)
こだわり #6 レイアウト
なるべく吸着して補助線が出る所に置く。デザインセンスに自信がないならルールを決めると良い。
【 色 】● ピンク フォントの位置をあわせ● ブルー コントロールの位置をあわせ● グレー 他のコントロールとの再近
![Page 18: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/18.jpg)
こだわり #7 フォーム
フォームが可変だとレイアウト的におかしく見えるので、固定に。その際、最大化も忘れずにオフ。
【 パラメータ 】FormBorderStyle = FixedSingle;MaxmizeBox = false;
![Page 19: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/19.jpg)
レイアウトへのこだわりを教えてくれた人
![Page 20: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/20.jpg)
完成
最初に作った時よりも、見た目も良く、エラーが出にくいアプリになりました。
![Page 21: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/21.jpg)
アプリをもっと効果的に
見なおす
More Effective check for the application
![Page 22: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/22.jpg)
こだわり #8 一行テキストボックス2
ファイルを選択する方法で手書きにも対応させる。これで処理がまとめられる。ロード処理中はボタンを無効にすると良い。【 パラメータ 】ReadOnly = false【 メソッド 】private void textBox1_TextChanged(object sender, EventArgs e){ if (File.Exists(textBox1.Text)) { button1.Enabled = false; textBox2.Text = File.ReadAllText(textBox1.Text); button1.Enabled = true; }}
![Page 23: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/23.jpg)
こだわり #9 ドラッグアンドドロップ
テキストボックスへのドラッグ&ドロップにも対応させる。
【 パラメータ 】AllDrop = true
【 メソッド 】DragEnterDragDrop
![Page 24: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/24.jpg)
こだわり #9 ドラッグアンドドロップ
【ソース】private void textBox1_DragEnter(object sender, DragEventArgs e){ e.Effect = DragDropEffects.Copy;}private void textBox1_DragDrop(object sender, DragEventArgs e){ if (e.Data.GetDataPresent(DataFormats.FileDrop)) { string[] fileName = (string[])e.Data.GetData(DataFormats.FileDrop); if (File.Exists(fileName[0]) == true) { textBox1.Text =fileName[0]; } }}
![Page 25: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/25.jpg)
こだわり #9 ドラッグアンドドロップ
string dropFileName = "";private void textBox1_DragEnter(object sender, DragEventArgs e){ e.Effect = DragDropEffects.None; if (e.Data.GetDataPresent(DataFormats.FileDrop)) { var fileName = (string[])e.Data.GetData(DataFormats.FileDrop); if (File.Exists(fileName[0]) == true) { dropFileName = fileName[0]; e.Effect = DragDropEffects.All; } }}
private void textBox1_DragDrop(object sender, DragEventArgs e){ textBox1.Text = dropFileName;}
![Page 26: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/26.jpg)
こだわり #10 ファイル選択2
テキストファイルはtxtだけと限らない。すべてを選べるように。エラー対策はどちらにしろ必要。
【 パラメータ 】Filter = "txtファイル|*.txt|すべてのファイル|*.*";
![Page 27: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/27.jpg)
こだわり #11 ボタン2
ボタンを押した場合、テキストボックスにパスがあるならば、そのパスでダイアログは開いて欲しい。
【 メソッド 】private void button1_Click(object sender, EventArgs e){ if (File.Exists(textBox1.Text)) { openFileDialog1.InitialDirectory = Path.GetDirectoryName(textBox1.Text); openFileDialog1.FileName = Path.GetFileName(textBox1.Text); } openFileDialog1.ShowDialog();}
![Page 28: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/28.jpg)
こだわり #12 レイアウト2
サイズと位置を可変にしたいコントロールは、Anchorと組み合わせて使う。
【コントロール】Anchor:コントロールが固定されるコンテナーの端を定義します。コントロールがいずれかの端に固定されるとその端と、その端に最も近いコントロールの端の間は、一定の距離を保ちます
![Page 29: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/29.jpg)
こだわり #13 フォーム2
テキストボックスが可変になったらフォームも可変に。見た目も変更可能に。タイトルもつける。
【 パラメータ 】FormBorderStyle = Sizable;MaxmizeBox = true;○ : SizeGripStyle=Show;× : SizeGripStyle=Auto;Text = "Visual Studio入門アプリ";
![Page 30: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/30.jpg)
こだわり #14 アイコン
画竜点睛を欠いては台無しです。アイコンを作りましょう。icoファイル作成はIcoFXがオススメです。
【 パラメータ 】リソースのアイコンフォームのicon
![Page 31: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/31.jpg)
まとめ
これで完成です。
![Page 32: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/32.jpg)
総評
今日は合計で14個のこだわりを説明しました。
最後にアプリを作る際にとても重要で好きな言葉です。「神は細部に宿る」
みなさんも自分のこだわりを見つけて下さい。
![Page 33: Visual studio 入門](https://reader030.fdocuments.us/reader030/viewer/2022012310/5590bcaf1a28abc5308b4767/html5/thumbnails/33.jpg)
謝辞
ご清聴有難うございます。