Download - Visual studio 入門
Visual Studio入門
森理 麟(moririring)
自己紹介
森理 麟(@moririring)● 職業 : ゲームプログラマ
● HP : 森理 麟(moririring)のHP● ブログ : 森理 麟(moririring)のプログラマブログ
● VSハッカソン倶楽部代表、EffectiveC++読書会
運営、MetroStyleDeveloperスタッフ、
TDDBCTA、わんくま同盟スタッフ
● MicrosoftMVP for C#
質問について
海外のイベントに参加して、参加者と発表者の質問のやりとりが非常に洗練されていると思った。
わからない場合は参加者がバンバン質問して、発表者はドンドンそれに答えていく。
うまく出来るか分からないけれど、簡単なルールなので、どんな小さいことでも、疑問を持ったら質問してください。
今日の環境と目的
説明に使用する言語はC#、アプリケーションはWindowsForm
Visual Studioや.NET Frameworkのバージョン、言語仕様や環境に依存する話は極力なし
初めての人が、兎に角Visual Studioをさわってアプリを作ってみたくなることが目標。
アジェンタ
● とりあえずアプリを作る
● アプリを効果的に見なおす
● アプリをもっと効果的に見なおす
とりあえずアプリを
作る
I make the application.
それでは
細かいことは後にして、早速、簡単なアプリを作ってみます。
作るアプリ
ファイルを選択して中身がテキストなら表示するアプリ
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();}
修正
とりあえずアプリは完成しました。
それでは、1つずつ見なおしていきましょう。
アプリを効果的に
見なおす
Effective check for the application
こだわり #1 ボタン
他のウィンドウが開くボタンは、表示に三点リーダーを使う。幅は自動に任せると楽。
【 表示 】○ : 「...」←ドット三点
× : 「…」←三点リーダー
【 パラメータ 】AutoSize = True;AutoSizeMode = GrowAndShrink;
こだわり #2 一行テキストボックス
読み取り専用の場合、テキストボックスに限りReadOnlyを使う。普通はEnabled。
【 パラメータ 】○ : ReadOnly = false;× : Enabled = false;
こだわり #3 ファイル選択ダイアログ
ファイル選択ダイアログは選択させるファイルの種類が決まっていれば必ずそれを設定しておく。
【 パラメータ 】Filter = "txtファイル|*.txt";
こだわり #4 複数行テキストボックス
複数行テキストボックスはスクロールバーを両方につける。Bothの場合自動切り返しに注意する。
【 パラメータ 】ReadOnly = false;ScrollBars = Both;WordWrap = false;
こだわり #5 ファイルロード
全テキスト読み込みは専用関数があるので、そちらを使った方が楽。エラー処理までやってくれる。
【 パラメータ 】○ : File.ReadAllText× : StreamReader
こだわり #6 レイアウト
なるべく吸着して補助線が出る所に置く。デザインセンスに自信がないならルールを決めると良い。
【 色 】● ピンク フォントの位置をあわせ● ブルー コントロールの位置をあわせ● グレー 他のコントロールとの再近
こだわり #7 フォーム
フォームが可変だとレイアウト的におかしく見えるので、固定に。その際、最大化も忘れずにオフ。
【 パラメータ 】FormBorderStyle = FixedSingle;MaxmizeBox = false;
レイアウトへのこだわりを教えてくれた人
完成
最初に作った時よりも、見た目も良く、エラーが出にくいアプリになりました。
アプリをもっと効果的に
見なおす
More Effective check for the application
こだわり #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; }}
こだわり #9 ドラッグアンドドロップ
テキストボックスへのドラッグ&ドロップにも対応させる。
【 パラメータ 】AllDrop = true
【 メソッド 】DragEnterDragDrop
こだわり #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]; } }}
こだわり #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;}
こだわり #10 ファイル選択2
テキストファイルはtxtだけと限らない。すべてを選べるように。エラー対策はどちらにしろ必要。
【 パラメータ 】Filter = "txtファイル|*.txt|すべてのファイル|*.*";
こだわり #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();}
こだわり #12 レイアウト2
サイズと位置を可変にしたいコントロールは、Anchorと組み合わせて使う。
【コントロール】Anchor:コントロールが固定されるコンテナーの端を定義します。コントロールがいずれかの端に固定されるとその端と、その端に最も近いコントロールの端の間は、一定の距離を保ちます
こだわり #13 フォーム2
テキストボックスが可変になったらフォームも可変に。見た目も変更可能に。タイトルもつける。
【 パラメータ 】FormBorderStyle = Sizable;MaxmizeBox = true;○ : SizeGripStyle=Show;× : SizeGripStyle=Auto;Text = "Visual Studio入門アプリ";
こだわり #14 アイコン
画竜点睛を欠いては台無しです。アイコンを作りましょう。icoファイル作成はIcoFXがオススメです。
【 パラメータ 】リソースのアイコンフォームのicon
まとめ
これで完成です。
総評
今日は合計で14個のこだわりを説明しました。
最後にアプリを作る際にとても重要で好きな言葉です。「神は細部に宿る」
みなさんも自分のこだわりを見つけて下さい。
謝辞
ご清聴有難うございます。