2017年3月29日水曜日

C# 複数のフォーム間でデータの受け渡しをする方法

複数のフォームでデータを行き来させたい場合、
どの様なやり方があるのか、調べてみた。

準備



新しいプロジェクトを作成



「Form1」へ
「ツールボックス」から
「Button」と「TextBox」を配置



「プロジェクト」->「新しい項目の追加」
で「Windowsフォーム」を追加する。



追加した「Form2」へ
「ツールボックス」から
「TextBox」を配置



「Form1」のボタンをダブルクリックして、
「クリック時イベント」のコードを表示させておきます。


「Form1」からモーダルで「Form2」を呼び出す



モーダルで「Form2」を呼び出すには2つの方法があります。
普段はリソースの解放が自動で行われる「using」の方を使います。
事情により使い分けます。

2つの方法のどちらかを記述して、
一度ここ迄で実行してみましょう。
ボタンを押すと「Form2」がモーダルで実行されるはずです。


Form間でデータの受け渡しを行う



「Form1」と「Form2」の間でデータの受け渡しを行います。

「Form2」へ
「ツールボックス」から
「Button」を配置して下さい。


「Form2」の配置したボタンをダブルクリックして、
「クリック時イベント」のコードを表示させておきます。


次に、
「Form2」デザインのイベントから
「FormClosing」をダブルクリックして、
「Form終了時イベント」のコードを表示させておきます。




準備が出来たので、
Form間でのデータ受け渡しの
いくつかのパターンを記載します。


●パターンA

「Form2」側で「Form1」のインスタンスを取得して、
「Form1」の持っているデータの取得や設定をしたいので、
以下のようにします。

これで実行してみて下さい。
Form間でデータの受け渡しができるハズです。

このパターンAの方法だと、
「Form1」に自身のインスタンスの格納用メンバを用意して、
それに対してstaticを適用しています。

1つの「Form1」しか同時に使用しない場合はこれで大丈夫ですが、
複数の「Form1」のインスタンスを同時に使用する場合、
インスタンスの格納用メンバがstaticの為、
クラス内でstatic部分が共有されてしまい、
うまく動きません。

ですが、
普通は同一Formを複数同時に使う事はないので、
これでも問題ありません。


●パターンB

「Form1」から「Form2」をnewする際に
「Form1」のインスタンスを「Form2」へ
引数として渡す事により、
「Form2」から
「Form1」の持っているデータの取得や設定をしたいので、
以下のようにします。

パターンAと比べると、
「Form1」からstaticが無くなり、
いくらかすっきりしました。

Form間のデータ受け渡し内容がシンプルな物であれば、
このパターンを使用するのがよさそうです。

これなら複数Formのインスタンスを作らなくては
いけない場合でも問題無く動きそうです。


●パターンC

「Form2」側に自身でダイアログを生成して、
表示させる自家製メソッドをstaticで用意。
引数と戻り値にリストを使用する事により、
フォーム間でデータの受け渡しを行います。

「Form1」側は「Form2」へ渡したいデータをリスト化し、
「Form2」自家製メソッドを引数付きで呼びます。
「Form2」のフォーム表示後、戻り値のリストを取り出し、
「Form1」内で利用します。



これは、
受け渡したいデータが増えても、
「Form1」側に無駄にpublicが増えず、
格納するデータの順番さえちゃんと管理できれば楽そうです。

「Form2」自身で自分のインスタンスの生成、表示をやってくれるので
「Form1」側から見たときに、使いやすそうです。



2017年3月24日金曜日

Visual Studio Community 2017のインストール


「Visual Studio Community 2017」のインストール



へアクセスして、
「VS Community 2017 のダウンロード」を選択

ダウンロードされたファイルを実行する。


開発したいソフトの種類をチェック。
「インストール」を選択。



とりあえず起動します。



サインインします。



VisualStudioを開始します。






Parallels Desktop 12 for MacへWindows10インストール

前回
Parallels Desktop 12 for Mac」のインストールを行った。
今回、仮想マシンへ
Windows10」のインストールを行う。

Windows10インストール


Parallels Desktop 12 for Mac」の起動

「MicrosoftからWindows10を入手」を選びます
ここでUSBでのインストールを選ばない事。
(私の環境ではうまくインストール出来ませんでした。)

Windows10をダウンロードします。



「Windows10」を選んで「確認」
(「Windows10N」等は特殊なバージョンなので選ばない事。)
「日本語」を選んで「確認」



通常は「64bit版」を選びましょう。



「Windows10」のisoファイルがダウンロードされます。
ダウンロードは4G程です。結構時間が掛かるかもしれません。
ダウンロードしたisoをParallels側へドロップします。


↓プロダクトキーを入れて

↓通常は「業務用ツール」を選びましょう。


インストール先と名前はとりあえずそのままで進めます。



「Windows10」がインストールされました。



困った事に、Macのデスクトップにおいてあるファイルが
Windows側でまるまる表示されてしまうようです。

とりあえず、色々自動インストールされるのが終わるのを待ちます。


終わったら、
一度Windowsをシャットダウンします。

「コントロールセンター」から「歯車」をクリックすると、
仮想マシンのオプションが設定出来ます。
「MacのユーザーフォルダをWindowsと共有」の
チェックを外します。



これでデスクトップの表示がすっきりします。



Parallels Desktopの
スタートアップマニュアルは以下から入手できます。
https://act2inc.zendesk.com/hc/ja/articles/206271401-Parallels-Desktop-12-%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB




2017年3月23日木曜日

Parallels Desktop 12 for Macのインストール

まず、Macで仮想マシンを作って使うソフトを調べた…

Vmwareから出ているソフトは
Fusion8.5」と「Fusion8.5Pro」がある。
両方ともオンラインストアからしか購入できない。
Fusion8.5」はライセンス永久。
Fusion8.5Pro」はサブスクリプションとなる。
仮想マシンへのRAM割り振りは最大64GB。
仮想マシンは好きなだけ作成可能。

Parallelsから出ているソフトは
Parallels Desktop 12 for Mac
Parallels Desktop for Mac Pro Edition
Parallels Desktop for Mac Business Edition
の3種類。
Parallels Desktop 12 for Mac」はライセンス永久。
パッケージ版があり、
家電量販店で購入できる。
物理インストーラがついた「USB版」も存在する。
他の
Parallels Desktop for Mac Pro Edition
Parallels Desktop for Mac Business Edition
を選んだ場合はサブスクリプションとなる。
オンラインストアからしか購入できない。

Parallels Desktop 12 for Mac」について調べてみた。
仮想マシンへのRAM割り振りは8GB。
4CPUまで割り振れる。
仮想マシンは1ライセンスで1つ迄しか作成できないので注意。
Parallels Toolbox for Mac」という仮想マシンを便利に使う為の、
結構強力なツールがおまけで付いてくる。これが便利そう。

結果、Parallelsからパッケージで販売されている
Parallels Desktop 12 for Mac」の「USB版」を購入。
インストールを行った。

「Parallels Desktop 12 for Mac」インストール


USBをMacへ差しインストーラを起動。

USB版ならオフラインでもインストールできるかと思ったが、





結局インストールできなかった。
オフライン環境でのインストールはできないみたい。
ネットに接続して、

↓最新版をダウンロード




↓サインインを行う。

↓アクティベーション。



正常にインストールされた。

次回ここに、Windows10をインストールする。


2017年3月17日金曜日

Visual Studio for Macで.NET Coreのインストール2

http://1studying.blogspot.jp/2017/03/homebrewopenssl_16.html
の続き

「Visual Studio for Mac」で「.NET Core」が使いたい。
「.NET Core」のインストール手順はここに記載されている。
https://www.microsoft.com/net/core#macos

「.NET Core」のインストールには、
「OpenSSL」の最新バージョンが必要な為、
前回、
Macのパッケージマネージャー「Homebew」と「OpenSSL」のインストールを行った。

「.NET Core」のインストール


https://www.microsoft.com/net/core#macos
内の

から「.NET Core」をダウンロードしてインストールする。
これで準備完了です。

「.NET Core」を試す


とりあえずコマンドを試してみます。

「ターミナル」で適当なフォルダを作成して、
その中で
dotnet new console -o hwapp
を実行します
そうすると、「hwapp」というフォルダが作成されて
その中に
「pwapp.csproj」と「Program.cs」ファイルが作成されます。

もし
「-o hwapp」を入れないとカレントフォルダ内に
「[ユーザー名].csproj」と「Program.cs」ファイルが作成されます。

「console」オプションは…
「-t console」の省略形です。コンソールプロジェクトを作成してくれます。
「-t web」で「ASP.NET Core MVCプロジェクト」
「-t lib」で「クラスライブラリプロジェクト」
「-t xunittest」で「xUnitテストプロジェクト」
等を作成してくれるみたいです。

作成された「.csproj」ファイルのあるフォルダへ移動して
以下のコマンドを入力します。
dotnet restore
dotnet run
「dotnet restore」は…
  依存するパッケージをリストア(リストア)ダウンロードしてくれます。
  (「obj」フォルダが作られ、その階層下に展開)
「dotnet run」は…
  ビルドと実行をおこないます。
  (「bin」フォルダが作られ、その階層下に展開)
  必ず「.csproj」のある階層で実行する事。

「Visual Studio for Mac」の
「.NET Core」の「Console Application」で作られた
「.csproj」プロジェクトも「dotnet run」で実行可能です。



2017年3月16日木曜日

Visual Studio for Macで.NET Coreのインストール1

「Visual Studio for Mac」で「.NET Core」が使いたい。
「.NET Core」のインストール手順はここに記載されている。
https://www.microsoft.com/net/core#macos

この手順に従い、「.NET Core」をインストールしてみる。

「.NET Core」のインストールの為には、
「OpenSSL」の最新バージョンをインストールする必要があった為、
Mac用のパッケージマネージャーからインストールを行います。

Mac用のパッケージマネージャーは主に、
「MacPorts」(マックポーツ)と
「Homebrew」(ホームブルー)が使われています。

今回は「Homebrew」をインストールしました。
その後、「Homebrew」から「OpenSSL」をインストールして、
シンボリックリンクを設定します。
以下が手順。

「Homebrew」(ホームブルー)インストール


https://brew.sh/index_ja.html
へアクセス

MACで「ターミナル」を開き
コマンドをコピー&ペーストして実行。

「ターミナル」から
インストール途中でパスワードを聞かれるので要入力。

「OpenSSL」のインストール


「ターミナル」から以下を入力
brew update
brew install openssl
mkdir -p /usr/local/lib
ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/
コマンド説明:
「brew update」…
  「Homebrew」を最新バージョンにしている。
「brew install openssl」…
  「OpenSSL」をインストール。
「mkdir -p /usr/local/lib」…
  「/usr/local/lib」フォルダを新規作成
「ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/」
「ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/」…
  作成したフォルダ内に「OpenSSL」ライブラリのシンボリックリンクを作成。

次に、「.NET Core」をインストールします。

続きは次回。

2017年3月14日火曜日

Bloggerでソースコードを貼り付ける


注意


現在、私自身は「ex code prettify」という
ここで紹介している「google code prettify」の
高機能版を使用しています。
↓こちらの方がオススメです
●Bloggerでソースコードを貼り付ける(改)●
http://1studying.blogspot.jp/2017/04/blogger.html

最初に…


ソースコードの貼り付けに最初「SyntaxHighlighter」を
使ってみたが、はまった…
リスト表示や行番号表示、ハイライト等、
綺麗に表示できるは出来るのだが、CSSが悪いのか?
Bloggerでの表示でカギ括弧の文字が勝手に小さくなったり、
Bloggerの挙動が変になったり、
読み込みも少し重めなので、使うのを諦めた。

結局、
Google純正が良いやって事で
google-code-prettify」を使う事にする。
特に問題無く使えるのでこれで行く事にした↑現在(改)を使用
//こんな感じのコード表示に
//なります。
alert("test");

使う為の準備


まず
「テーマ」を選択してから「HTMLの編集」を選択
次に、
これ↓をコピーして下さい
<!-- google-code-prettify 追加 -->
<script src='https://rawgit.com/google/code-prettify/master/loader/run_prettify.js?skin=sunburst' type='text/javascript'/>
<style>ol.linenums{padding-left:1em;}
li.L0, li.L1, li.L2, li.L3,li.L5, li.L6, li.L7, li.L8{list-style-type: decimal !important;}
li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{border-left:solid 2px #AAA !important; padding-left:0.5em !important;}
 </style>
そうしたら「</head>」タグを探して、
「</head>」タグの上部へペースト
ペースト後、
「テーマを保存」を押し忘れないようにして下さい。

使ってみる


ブログ内のコードを貼り付けたい場所に
「HTML」で以下の形でコピー&ペーストして下さい。
<pre class="prettyprint">
書きたいコード
</pre>

言語は自動で判別されますが、
うまく判別されない事もあります。
明示的に書くには以下の様にします。
<pre class="prettyprint lang-html">
書きたいコード
</pre>
「lang-」の後に言語の文字を指定します。
ーーーーーーーーーー
「bsh」「c」「cc」「cpp」「cs」「csh」
「cyc」「cv」「htm」「html」「java」
「js」「m」「mxml」「perl」「pl」
「pm」「py」「rb」「sh」「xhtml」
「xml」「xsl」
ーーーーーーーーーー
の各言語のハイライトに対応するようです。

注意!
コード内の「<script>」や「<link>」等のタグが
Blogger側のエラーとして識別される事があります。
その場合、
ーーーーーーーーーー
「<script>」→「&lt;script&gt;」
「<link>」→「&lt;link&gt;」
ーーーーーーーーーー
のように、
「<」を「&lt;」へ
「>」を「&gt;」へ
の置換が必要になります。

自動で置換させたい方はこちらで変換してくれるみたいです。
http://www.kuribo.info/2008/04/code-prettify.html

便利!
ソースコードの実際の表示確認は、
google-code-prettify」では、
プレビュー」から確認が可能です!
(httpsが効く為?)
(「SyntaxHighlighter」を標準で使った場合はプレビュー確認が
出来ないので苦痛だった…)

通常は「プレビュー」でコードの確認ができるハズです。
が、もしどうしても「プレビュー」から確認出来ない場合は、
一度「公開」してから
ここで表示させて確認してみて下さい。


スマホ対応する


上記方法だけだとリスト表示はまだスマートフォン表示に対応していません。
対応させましょう。
「テーマ」でモバイル設定の「歯車」を選択
(テーマによっては「歯車」のマークが無い場合があります。
その場合設定は必要ありません。)
そうしたら、
モバイルテーマの選択で
「カスタム」を選んで保存して下さい。
これでコードのリスト表示が
スマホに対応します。

スキンの問題


一応リストの表示の見え方を変更できます。

ヘッダに挿入した
<script type="text/javascript" src='https://rawgit.com/google/code-prettify/master/loader/run_prettify.js?skin=sunburst'></script>

skin=sunburst」を変更すれば良いです。
ここから好きなスキンを選びます。
スキン一覧

ただし、
「Sons-Of-Obsidian」スキンを使おうと思ったら
表示がおかしくなったので、
自分でstyleの調整が必要になるかもしれません。
私は「sunburst」を使う事にしました。



リストの行番号表示をしたい場合、
<pre class="prettyprint linenums">
で出来ます。
あいうえお
かきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこかきくけこ
さしすせそ


「google-code-prettify」のこまかい事は
一応ここに書いてあります。

オプション等の設定入門文章はこちら。
(何故か上手く動かない場合もあった。)
https://github.com/google/code-prettify/blob/master/docs/getting_started.md


2017年3月13日月曜日

Bloggerで区切りの横線を挿入したい…

やり方

↑この区切り線は「HTML」で「<hr>」や「<hr/>」を直接入れる事で挿入できる。
以下のようにする。


ブログといえ、ほぼほぼHTMLを直接いじる感じなのね。
もっとライトな感じに編集できるもんだと思っていたけど、
タグ打ちの方がたしかに自由度はあるかもね…。

・太さ
<hr size="5">


横サイズ
<hr width="300">

<hr width="50%">


揃え
<hr align="left" width="50%">

<hr align="center" width="50%">

<hr align="right" width="50%">


陰無し
<hr noshade align="center" width="50%">




↑Topへ