ファイル管理をしてみよう(Gitを知ろう)

Gitについて学習する連載の2回目です。前回の記事はこちらになります。

hirocom777.hatenadiary.org

ファイル管理をしてみよう

前回Gtiとはデータの変更を管理をするためのツールとご紹介しました。

今回は実際にどのようにファイルを管理するのか、簡単な例をご紹介したいと思います。以下の記事でGitをインストールしていることを前提に進めていきます。

tonari-it.com

インストール後の設定はこちらを参考にしてください。

tonari-it.com

まず任意の場所にフォルダーを作りましょう。名前は何でもいいですが、今回はLocalとしました。次に、作成したフォルダーを選択して右クリックします。

現れたメニューの中にGit Bash Hereという項目が現れるので選択すると以下のような画面が現れると思います。

GitのCLI(キャラクタベースユーザインタフェースです。Gitの操作はこの画面で行います。 画面の文字が小さい場合はCtrl + "+"で大きくできます。小さくするにはCtrl + "-"です。 この画面で以下を入力してEnterしてみましょう。

git init

画面が以下の様になったと思います。git initはリポジトリを作成するコマンドです。

『空っぽのリポジトリをLocalフォルダー下の.git内にに作りました』って表示されています。

Localフォルダーを確認してみましょう。.gitが作成されていると思います。この表示がされない方は、Localフォルダーの表示設定で隠しファイルの項目にチェックを入れると表示されると思います。

これでLocalフォルダー内のファイルを管理する準備ができました。

Localフォルダー内にはテキストファイルFile_1.txtを作成します。ファイルの中身は簡単なものでいいです。今回は以下の様にしました。

Hello!!

リポジトリでファイルを管理する

ところでリポジトリって何なんでしょ?リポジトリ (repository)とは、英語で倉庫とか、宝庫という意味です。Gitはリポジトリを使ってフォルダー内のファイルを管理します。それでは早速使ってみましょう。GitのCLIで以下を入力してみましょう。

ls

画面が以下の様になったと思います。

lsはファイル一覧を表示するコマンドです。File_1.txtがちゃんとできていることがわかります。

管理状態を確認する

次に管理の状態を確認しましょう。以下を入力してください。

git status

画面が以下の様になったと思います。git statusはファイルの管理状態を確認、表示するコマンドです。

上から、こんなことが書いていると思います。

  • masterブランチにいます(ブランチについては別途ご説明します)
  • まだ何もコミットされていません(コミットについては後述します
  • 追跡対象(管理対象)になっていないファイル(File_1.txt)があります

つまり、File_1.txtがあるけれど管理対象になっていないということです。

管理対象を追加登録する

File_1.txtを管理対象に登録しましょう。Gitでは、この登録のことをステージングと呼んでいます。以下を入力してください。

git add File_1.txt

git add ファイル名 は指定したファイルを管理対象にするコマンドです。複数のファイルを指定する場合は、スペースで区切ってファイル名を指定します。また、すべてのファイルを指定したい場合は「.」と指定します。続けてもう一度git statusを入力して管理状態を確認すると、以下の画面になりました。

上の方の表示は変わりませんが、最後の表示が変わっていますね。以下のような感じになっています。

  • File_1.txtが新しく管理対象になりました。

また、この画面にも表示されていますがgit addの指定を取り消すには

git rm --caches ファイル名

で可能です。

管理対象を記録する

それでは今回の内容を記録していきたいと思います。Gitでは、この記録のことをコミットと呼んでいます。以下を入力してください。

git commit

すると、画面が以下の様になってテキストエディターが立ち上がりました。

テキストエディターには以下のように表示されています。今回のコミットの情報です。

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   new file:   File_1.txt
#

この内容の1行目に記録のタイトル、2行目は空けて、3行目以降に記録内容の詳細を書きましょう。先頭が#の行はコメントとして無視されます。今回は、以下の様に追記しました。

Gitの使い方を学習します_01

一番最初のコミットです
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   new file:   File_1.txt
#

ファイルを保存してエディターを閉じると画面は以下の様になりました。

File_1.txtが追加されましたということですね。 git statusを入力して管理状態を確認すると・・・

コミットするべきものは何もないとでました。

Gitによるファイル管理の流れ

以上がGitによるファイル管理の流れです。整理すると、フォルダーにリポジトリを作って(git init)その後は・・・

  1. ファイルを作成変更する

  2. git addで管理対象を登録する(ステージング)

  3. git commtiで管理対象を記録する(コミット)

の繰り返しとなります。各作業の前後で管理状態の確認(git status)をしながら作業するといいでしょう。

記録されたファイルは?

今回は、Gitによる簡単なファイル管理の例をご紹介しました。のですが、記録された変更内容はどのように管理されているのでしょうか?次回はその辺をご紹介します。

hirocom777.hatenadiary.org

Gitを知ろうの連載記事はコチラからどうぞ

Gitを知ろう

Gitを知ろう

皆さんこんにちは、HiroCom777です。最近になって僕の身の回りでもGit、GitHubを使用してドキュメント、プログラムの管理をするという話が湧いて出てきています。

f:id:HiroCom777:20210616222818j:plain

ひとつは職場のプログラム管理。職場のお偉いさん方がGit、GitHubを使えと号令をかけてきました。でも、こちらは号令だけでなにもできていないのが実情です(笑)

もうひとつは所属しているノンプロ研で技術書典向けに本を書いてみようという話がありまして・・・

hirocom777.hatenadiary.org

原稿のやり取りをGit、GitHubを使って行いました。なんとか最後までやり遂げた体になったのですが、作業はできたものの今ひとつ違和感があるのです。毎回所定の作業をするのですが、その作業が完了するたびに

『なんでファイルのアップや修正に、こんな複雑なことをしなければならんのかな?』

という疑問が残るんです。『ファイルのやりとりならメールとかでいいじゃん!!』みたいな感じですね。

でも実際の世の中ではGit、GitHubが主流となっています。これは、この手法が優れていることに他ならないからでしょう。実際の所、不特定多数の人たちと一緒に仕事をするときに主流となっている方法が使えないというのは不便です。そして、この様に疑問が残る状態でファイルの管理、やり取りをすること自体に問題があります。僕自身、使ってみた感想として『これは場数をこなして慣れる必要があるな・・・』と実感しました。

結局、使いこなしている人たちは色々な経験を通して習得しているんじゃないですか?

そこでGit(GitHubは後回し。まずはGitだけで取り組んでみる)を基本から勉強して、その内容を少しずつ理解しながら記録してみようと思い立ちました。皆さんお付き合いください。対象となる環境はWindows 10です。

Gitって何?

ではまず、Gitとは何なのか簡単に触れていきたいと思います。Gitとは、テキストデータ、プログラムのソースリスト、その他のデジタルデータの変更を管理(バージョン管理)をするためのツールです。作ったのはLinux(パソコン用に作られたOS。今ではその他にもさまざまなシステムで使われている)の創始者リーナス・トーバルズ氏。簡単に言うと神様です。

そんな神様が自分の仕事(ソフトウェアの開発と管理)のために僅か10日で作ったツール。それがGitです。神様が使う訳ですから便利な機能満載なわけです。Linuxの開発には大勢の人たちが協力していて、それらの調整、管理も神様がこのツールでやっているんです。すごいツールっていうことですね。

そりゃ全部を理解するのは難しいわけです。でもね、簡単な管理だけでよければ我々でも使えるみたいなんですよ。幸いなことに、この神様は大変お優しい(慈悲深い)。『みんな、このツール便利だから無料で使っていいよ!!』って言ってくれています。神様有難うございます!!

何ができるの?

 デジタルデータの変更を管理(バージョン管理)をするためのツールですが、具体的にどういうことができるんでしょうか?Gitを使うと作成、編集しているデータ、プログラムなどを任意のタイミングで保存、記録できます。もし何か問題があって以前の形に戻りたい場合、保存しているタイミングであれば戻ることができます。

また、1つのファイルや開発対象に複数人でコミュニケーションをとりながら開発を進めることができたりします。この複数人というのが肝で、人数が増えれば増えるほど管理が複雑になっていくものですが、この管理をスマートに行うことができます。

と言う訳で、このすごいツール'Git'に挑もうと思います。まずはGitを使う準備をしましょう。

Gitを使う準備

それではGitを使う準備から整えていきましょう。以下のサイトを参考にしてインストールしてください。

tonari-it.com

インストール後の設定はこちらを参考にしてください。

tonari-it.com

上の記事ではテキストエディターとしてVS codeを指定していますが、メモ帳を使いたい方は、以下の設定で使うことができます。

git config --global core.editor notepad

テキストエディターは版数管理のテキストを編集するときなどに使用します。 これで準備はひととおり整いました。

手始めに使ってみる

次回、早速使ってみましょう。簡単な例から始めてみます。お楽しみに!! hirocom777.hatenadiary.org

Gitを知ろうの連載記事はコチラからどうぞ

本の原稿(というか下書き)を書きましたってお話

なんの経緯かわからないままですが、本の原稿(というか下書き)を書きました。所属しているノンプロ研で技術ライティング講座というのがあって受講したんですね。

tonari-it.com

講座ではTwitterがどうだとか、Webライティングがどうかとか、材料集めはこうしようとか、学んでいきます。そしてこの講座、『技術に関する文章を書くための知識とスキルを身につける』を最終目的としています。

ちなみに、現在第2期が絶賛開催中(2021年5月)で不肖わたくしがTA(ティーチングアシスタント)を務めております。で、最後に書籍の企画を作成して提出するのですが、そしたらなんと企画が通っちゃって原稿作る羽目になりました。

f:id:HiroCom777:20210529162407j:plain

まだ完成まで色々な事が残ってはいるのですが、一応最後まで書ききったということで今日はその雑感を書きたいと思います。

何を書こうと思ったか

原稿のベースになっているのは以下の2つの連載ブログです。こちらはマイコンボードArduinoUNOに関する連載。

hirocom777.hatenadiary.org

もう1つはGrove Beginner Kit For Arduinoというマイコンキットの連載。

hirocom777.hatenadiary.org

今回の原稿もGrove Beginner Kit For Arduinoについて書いたものです。

それからノンプロ研の活動の中で開催したマイコン講座というのがありまして、ここの内容も取り込んでいます。

hirocom777.hatenadiary.org

これらの活動で得られた経験を本の原稿という形でまとめ直すことは大きな学びになりました。個別のものをまとめなおして別の形でアウトプットする行為は、得られるものが大きいです。

困ったときに過去の自分に助けられる

原稿を書いていると、行き詰まることが多々あるのですが、そんなときに過去のブログやら資料やら見ると、あーそういえばこのときはこう書いたっけ・・・なんて事が多々ありましたね。過去の自分に助けられているってことです。何が役に立つかわからないです。とくにブログなどの形で纏めておくと、あとで役に立つことが多いですね。この経験を繰り返していくと、自分の中で学習の位置づけが上がって行くと思います。

学習しようとするときに目標建てるじゃないですか、ところが勉強はじめて見ると思い通りには行かない。基本的に解らないことを勉強するわけですから、勉強した結果どうなるかは解らないわけです。思い通りの結果にならないから受け入れられないか、受け入れて柔軟に対処するかが学習がうまくいくかどうか。この2つが学習がうまくいくかどうかの分かれ道なのか、なんて考えました。思い通りにならなくても、何かしらの形でまとめて記録しておくことは大切だと感じました。

GitとGitHubでやり取りしてみた

実際の執筆は、テキストエディタVS Codeを使ってMarkDown形式で書いていきます。書きあがった原稿はGitとGitHubでリモートレポジトリ(ネット上のファイル管理場所)にアップされて、確認してもらった上で修正。さらに修正した原稿をアップ、の繰り返して進んでいきます。この一連の業務をとおしてVS CodeMarkDown、GitとGitHubについて少しずつですが学ぶことができます。少しだけでも実務経験を積めるということは大きいですね。

VS CodeMarkDown、GitとGitHubは、何れも技術ライティング講座で学びます。

また当然今まで本を書くという経験はありませんので、この経験ができるということは貴重です。

ノンプロ研の技術ライティング講座を受講して最後まで課題をこなしていくと、この様な経験が積める可能性があります。現在受講中の人たちも頑張ってください。

実は原稿書くのに注力していて、この一ヶ月間ブログ書いていないので再開しないと・・・。と、言う訳で、今回は肩慣らしのためにこんな文章を書いてみました。

最後までお付き合いいただいて、ありがとうございました。

プロジェクトの構成【C#を始めよう】

 C#でプログラムを始めてみる連載の5回目です。前回の記事はコチラです。

hirocom777.hatenadiary.org

プロジェクトの構成

 前回はVisual StudioIDE画面上でテキストボックスのプロパティを設定してみました。ツールとしての体裁はかなり整えられたと思います。今回は機能実装(プログラミング)と行きたいのですが、作成したプロジェクトの中身はフォルダー、ファイルがたくさんあります。どこにプログラムすればいいのでしょうか?今回は、そこからですね。前回作成したプロジェクト'TextEditor'の内容を見ていきましょう。

f:id:HiroCom777:20210425153815j:plain

ソリューションフォルダーの内容

 開発環境を整えるの回で新しいプロジェクトを作成しました。'TextEditor'という名前のフォルダーができ上がったと思います。このフォルダーのことをソリューションフォルダーと言います。作成したのはプロジェクトなのですが、実際にはその上位にソリューションという複数のプロジェクトを管理するフォルダーができるのです。ソリューションフォルダーの内容は以下の通りです。

f:id:HiroCom777:20210425154052j:plain
  • プロジェクトフォルダー(A TextEditor)

 プロジェクトを管理するフォルダーです。プロジェクトを構成するファイル、フォルダー一式が入っています。コチラの名前も'TextEditor'となっていますので混同しないように注意しましょう。

  • ソリューションファイル(B TextEditor.sln)

 ソリューション全体を管理するファイルです。このファイルをVisual Studioで開くことでソリューション全体を編集できるようになります。

 尚、新しいプロジェクトを構築する際の画面で'ソリューションとプロジェクトを同じディレクトリに配置する'にチェックを入れるとソリューションフォルダー直下にプロジェクトを構成するファイル、フォルダー一式がソリューションファイルと一緒に配置されます。ソリューション下にプロジェクトが1つだけの場合は、これで問題ありません。

プロジェクトフォルダーの内容

 続いて、プロジェクトフォルダーの内容を見てみましょう。

f:id:HiroCom777:20210425154132j:plain
  • binフォルダー(C)

 ビルド(コンパイル)されたプログラムは、.EXEファイル等でbinフォルダー下のDebugまたはReleaseフォルダーに配置されます。

  • objフォルダー(D)

 Visual Studioが使用するフォルダーです。個人が操作することはないと思います。

  • Propertiesフォルダー(E)

 プロジェクト設定のデータ内容が保存されるフォルダーです。

  • App.configファイル(F)

 アプリケーション固有の設定が記述されたファイルです。個人で操作することはないと思います。

  • Form1.csファイル(G)

 フォームを含むソースファイルです。コーディングでは、このソースファイルを編集します。

  • Form1.Designer.csファイル(H)

 フォームのデザインやコントロールの配置などを記録するファイルです。個人で操作することはないと思います。

  • Form1.resxファイル(I)

 フォームのリソースが保存されているファイルです。個人で操作することはないと思います。

  • Program.csファイル(J)

 ソースファイルを管理するファイルです。コーディングでは、このファイルを編集します。

  • プロジェクトファイル(K TextEditor.csproj)

 プロジェクトを管理するファイルです。ソリューションファイルと混同しないように注意してください。

つまり、プログラミングで編集するファイルはForm1.csとProgram.csということになります。判ってしまえばこっちのものですね。

いよいよプログラミング

 いかがでしょうか?たくさんのフォルダー、ファイルがありますがプログラミングに使用するファイルは大体わかってきました。次回はいよいよプログラミングに挑戦してみます。お楽しみに!!

hirocom777.hatenadiary.org C#で簡単なツールを作る連載記事はコチラからどうぞ

読込と同時に計算する(CSVファイルをADOで扱う⑦)


CSVファイルをADOで扱う連載の7回目です。前回の記事はこちらになります。

hirocom777.hatenadiary.org

読込と同時に計算する

 前回は、SQLを指定してCSVファイルを確認できるツール(CSV_ReaderSQL)で行を選択して読み込んでみました。列の選択に加えて行の選択もできるとあれば、色々な応用方法が考えられます。

f:id:HiroCom777:20210417202750j:plain

今回は、読込と同時に読み込んだ内容を計算した結果も表示してみましょう。これができると色々なことに応用できそうです。読み込んだ後の処理が簡単になりますし、元のファイルサイズはコンパクトで済みます。ツールは以下からダウンロードしてください。

CSV_ReaderSQL110.zip - Google ドライブ

身長、体重からBMIを計算する

 BMIを求めてみましょう。BMIとは人間の肥満度を肥満度を数値的に表した指数です。身長(m)と体重(kg)から算出されます。数式は以下の通りです。

 BMI = 体重 ÷ (身長×身長)

BMIが18.5~25だと標準体重。これより少ないと痩せすぎ、多いと太りすぎです。

以下のデータをご用意しました。前回と同様にコピーしてメモ帳などに貼り付けて名前を指定して保存してください。身長と体重の記録です。ファイル名は'健康診断.csv'としましょう。作ったファイルは任意のフォルダー下に保存してください。

"ID","名前","身長","体重"
"1","菅澤 亮","1.70","65"
"2","岡本 那奈","1.65","62"
"3","合田 光博","1.82","82"
"4","片平 由美子","1.53","60"
"5","片桐 徹平","1.73","69"

前回と同じようにCSV_ReaderSQLでフォルダーを指定して、SQLコマンド欄に以下を入力して実行ボタンを押します。

  SELECT 名前,体重/(身長*身長) AS BMI FROM [健康診断.csv]

結果は以下の様になりました。

名前 BMI
菅澤 亮 22.49134948
岡本 那奈 22.77318641
合田 光博 24.75546432
片平 由美子 25.6311675
片桐 徹平 23.05456246

それぞれのBMIが算出されました。この例では乗算(*)、除算(/)を使用しましたが、当然、加算(+)、減算(-)も使用できます。また計算式の後にある'AS BMI'ですが、計算結果を表示した列名の指定です。

今回のデータも前回同様数値を文字列で表しています。しかし、数式の中では自動的に数値に置き換えられるので数値変換の必要はありません。当然数値に変換できないデータがある場合エラーとなります。

表示される数値の桁数を指定したい場合にはROUNDを使用します。小数点以下2桁までの表示にしてみましょう。SQL文を以下の様にして実行しなおしてみてください。

  SELECT 名前,ROUND(体重/(身長^2),2) AS BMI FROM [健康診断.csv]

結果は以下の様になりました。表示がすっきりしましたね。

名前 BMI
菅澤 亮 22.49
岡本 那奈 22.77
合田 光博 24.76
片平 由美子 25.63
片桐 徹平 23.05

ADOのSQLで使用されるROUNDは'銀行型'(端数の中間値5を、もっとも近い偶数に丸める。整数に丸める場合、0.5は0となり、1.5は2となる。)が使用されます。他の処理系と結果が異なることがあるので注意しましょう。また、'身長*身長'が'身長^2'に変わっています。'^'はべき乗を意味しますので計算結果に変わりはありません。

その他の関数

 その他にも数値の計算に使える関数があります。組み合わせることでさまざまな計算が可能です。

  • ABS  指定した値の絶対値を返します。

  • SQR  指定した値の平方根を返します。

  • SIN,COS,TAN  指定した値の三角関数を返します。ラジアンで値を指定します。

  • LOG  指定した値の自然対数(底がe)を返します。常用対数(底が10)を使用する場合は、この値をLOG(10)で割ります。

次回は文字データ

 今回は、色々な計算に挑戦してみました。これはかなり使えるんじゃないですか?次回は文字データの扱い方について取り組んで見ようと思います。お楽しみに!!

hirocom777.hatenadiary.org

CSVファイルをADOで扱う連載記事はコチラからどうぞ

SQLで行を選ぶ(CSVファイルをADOで扱う⑥)


CSVファイルをADOで扱う連載の6回目です。前回の記事はこちらになります。

hirocom777.hatenadiary.org

行(レコード)を選ぶ

 前回は、SQLを指定してCSVファイルを確認てできるツール(CSV_ReaderSQL)を作って動かしてみました。ただ単に読み込むだけではなく、列を選択して読み込んだり列の表示順も変えることができるんです。結構おもしろいじゃないですか。他にも色々試してみましょう!!

f:id:HiroCom777:20210412223610j:plain

で、列を選択できるんだから行はどうなのかって訳で、今回は行の選択に挑戦してみます。ちなみにCSVファイルをデータベースとして見るときに、行方向のデータをレコードって言います(列方向はカラムっていいます)。つまり、CSVファイルから条件を指定して選択されたレコードだけを読んでみようと言う訳です。前回同様ツールは以下からダウンロードしてください。

CSV_ReaderSQL110.zip - Google ドライブ

今回用意したファイル

 さて、今回は以下のデータをご用意しました。前回と同様にコピーしてメモ帳などに貼り付けて名前を指定して保存してください。果物の売上データですね。ファイル名は'売上.csv'としましょう。作ったファイルは任意のフォルダー下に保存してください。

"ID","品名","数量","支店"
"1","バナナ","1","A"
"2","リンゴ","5","C"
"3","ミカン","3","D"
"4","バナナ","2","A"
"5","リンゴ","1","B"
"6","リンゴ","7","D"
"7","ミカン","2","C"
"8","バナナ","5","B"

WHEREでレコードを選択する

前回と同じようにフォルダーを作って、'売上.csv'を配置してください。CSV_ReaderSQLでフォルダーを指定しましょう。 前回ご説明しましたが、CSV_ReaderSQLを開いてファイルの内容をすべて表示するにはSQLコマンド欄に以下を入力して実行ボタンを押します。

  SELECT * FROM [売上.csv]

これですべてのデータが表示されます。条件を指定するにはこの後に'WHERE'と記述して、その後に条件を指定します。以下の様になります。

 SELECT フィールド名 FROM テーブル名 WHERE 条件

それでは、色々な条件で表示してみましょう。

品名を指定して表示する

品名が'バナナ'のデータだけ表示してみましょう。SQLコマンド欄に以下を入力して実行ボタンを押します。

  SELECT * FROM [売上.csv] WHERE 品名 = 'バナナ'
ID 品名 数量 支店
1 バナナ 1 A
4 バナナ 2 A
8 バナナ 5 B

狙い通りの結果が得られました。もっと複雑な条件も指定できます。

複数の条件を指定する

今度は複数の条件を指定してみましょう。A支店でのバナナの売り上げです。SQLコマンド欄に以下を入力して実行ボタンを押します。

  SELECT * FROM [売上.csv] WHERE 品名 = 'バナナ' AND 支店 = 'A'
ID 品名 数量 支店
1 バナナ 1 A
4 バナナ 2 A

2つの条件を'AND'で繋げると、両方の条件が成立したデータだけを表示します。どちらかが成立した場合を表示する場合には'OR'で繋げます。以下を入力して実行ボタンを押してみてください。

  SELECT * FROM [売上.csv] WHERE 品名 = 'バナナ' OR 支店 = 'B'
ID 品名 数量 支店
1 バナナ 1 A
4 バナナ 2 A
5 リンゴ 1 B
8 バナナ 5 B

B支店の売り上げとバナナの売り上げが表示されました。2つの条件のうちどちらかが成立したデータを表示しています。

値の大小で絞る

今までの例では値が合致しているかどうかを判断していました。今度は値の大小を見て絞ってみましょう。 以下を入力して実行してみましょう。

  SELECT * FROM [売上.csv] WHERE 3 <= CINT(数量) 
ID 品名 数量 支店
2 リンゴ 5 C
3 ミカン 3 D
6 リンゴ 7 D
8 バナナ 5 B

数量が3以上の売り上げが表示されました。同様に<,>,>=,=も使用できます。'CINT(数量)'ですが、データを文字列から数値(整数)に変換しています。この例では数量のデータも文字列で表示しているからです。数値として扱う場合は、この様な変換が必要です。同様にCLNG(長整数)、CSNG(単精度浮動小数点)、CDBL(倍精度浮動小数点)などが使用できます。データ型によって使い分けましょう。

次回は計算に挑戦

 今回は、行を選んで読み込んでみました。結構凝った条件を指定できますよね。次回は読み込んだ値を計算してみたいと思います。お楽しみに!! hirocom777.hatenadiary.org CSVファイルをADOで扱う連載記事はコチラからどうぞ

テキストボックス表示の調整【C#を始めよう】

 C#でプログラムを始めてみる連載の4回目です。前回の記事はコチラです。

hirocom777.hatenadiary.org

表示を調整する

f:id:HiroCom777:20210409221814j:plain

 前回はVisual StudioIDE画面上でフォーム上にテキストボックスを配置してプロパティを設定してみました。この時点でテキストボックスを配置しているフォームができていることも確認しました。でも、未だ表示は完ぺきではありません。

今回は、フォーム上のテキストボックスについて細かい表示を設定していきたいと思います。今回もプロパティウィンドウを使います。テキストボックスを指定して、F4キーでプロパティウィンドウを表示してください。

f:id:HiroCom777:20210409222714j:plain

テキストボックスの表示を設定する

 テキストボックスの表示状態についても設定しましょう。表示をフォームいっぱいにして、フォームのサイズを変更しても一緒にサイズが変わるようにします。その他の設定についてもご紹介します。設定するプロパティは以下になります。

  • Location(X,Y)
f:id:HiroCom777:20210409222846j:plain

 フォーム上の表示位置をXY座標で表します。左上が原点で右に行くほどX、下に行くほどYの値が増えていきます。今回はフォームいっぱいに表示したいのでX,Yともに0とします。

  • Size(Width,Height)
f:id:HiroCom777:20210409222943j:plain

 テキストボックスのサイズを設定します。Widthが幅、Heightが高さです。今回はフォームの形状が変更すると併せて変更になるのでフォームの同じプロパティを確認して少し小さい値にします。デザイン画面でテキストボックスを選択してサイズを調整するといいでしょう。

f:id:HiroCom777:20210409223113j:plain

この状態で後述するAnchorを設定するとフォームとテキストボックスの大きさの差が固定されるようになります。

  • Anchor(Top,Bottom,Left,Right)

 フォームの端からの表示を固定するかどうかを設定します。Top,Bottom,Left,Rightそれぞれがフォームの上端、下端、左端、右端を設定します。つまり、4つすべてを設定するとフォームの大きさに合わせてサイズが変わると言う訳です。 Anchorは最初'None'と設定されているのでドロップダウンを選択すると以下の図が出てきます。

f:id:HiroCom777:20210409223215j:plain

中央の四角からまわりに出ている棒を選択する(濃い色に変える)ことによって設定ができます。今回は以下の様にしてください。

f:id:HiroCom777:20210409223259j:plain

上記Sizeの設定でフォーム内のサイズとテキストボックスのサイズの差を殆んどゼロにしました。これで、実行時のフォームサイズが変わってもテキストボックスのサイズが追従するようになります。

コントロールの表示状態によってTopとLeftだけ(左上に表示)、BottomとRightだけ(右下に表示)等の設定ができます。状況によって使い分けましょう。

  • MultiLine
f:id:HiroCom777:20210409223546j:plain

 これは前回フォームにテキストボックスを配置した時、右上の右向き三角をクリックしてチェックした内容と同じです。 Falseの設定で1行のみ。Trueにすると複数行が扱えます。今回は当然True設定となります。

  • Font
f:id:HiroCom777:20210409223727j:plain

 フォントの種類、サイズなど選択します。フォントサイズは少し大きめにしておくといいでしょう。

  • ScrollBars(None,Horizontal,Vertical,Both)
f:id:HiroCom777:20210409224601j:plain

 スクロールバーの表示を設定します。表示なし(None)、水平方向のみ表示(Horizontal)、垂直方向のみ表示(Vertical)、水平垂直両方を表示(Both)から選択できます。また、水平方向のスクロールバーを表示するには、後述するWordWrapプロパティをFalseに設定しておく必要があります。今回はVerticalに設定しておきましょう。

  • WordWrap
f:id:HiroCom777:20210409224225j:plain

 テキストボックス内で折り返し表示をするかどうかを設定します。折り返し表示をする場合はTrue、しない場合はFalseを設定します。今回はTrueに設定します。

再度実行してみる

 それでは再度F5キーを押して実行してみましょう。

f:id:HiroCom777:20210409224638j:plain

今度はバッチリ!!フォームのサイズを変えても表示できています。

いよいよ機能実装・・・の前に

 いかがでしょうか?プロパティを設定するだけでも結構色々なことができますね。お次はいよいよ機能実装(プログラミング)と行きたいのですが、一体どこにプログラムを書けばいいのでしょうか?それにはプロジェクトの構成を把握しておかないといけません。次回はプロジェクト構成について見ていきます。お楽しみに!!

hirocom777.hatenadiary.org C#で簡単なツールを作る連載記事はコチラからどうぞ