2012年7月16日月曜日

C# PictureBoxコントロールで画像を表示

PictureBoxコントロールをつかって画像を表示する方法。



PictureBoxコントロールを使うと簡単に画像を表示することができます。


まず、フォームにPictureBoxコントロールを追加します。


PictureBoxコントロールの「BackColor」プロパティで背景色をBlackに、
「Size」プロパティでコントロールのサイズを100,100に設定。
(この2つの値は任意の値でOK)




「Image」プロパティの[...]ボタンをクリックして表示する画像を指定する。
(ImageLocationプロパティで指定することもできる)




ここでは、「ローカルリソース」を指定して[インポート]ボタンをクリックし画像ファイルをインポートします。





インポートするファイルを選択して、[開く]ボタンをクリックします。


指定した画像が右側に表示されるので確認し、よければ[OK]ボタンをクリック。


これで指定した画像が、PictureBoxコントロールに表示されます。



指定した画像は表示されましたが、画像の一部(左上)しか表示されていません。
指定したもとの画像は、これです↓


これは、PictureBoxコントロールのSizeModeプロパティが関係しています。
SizeModeプロパティで画像の表示方法をコントロールします。

指定できる値は、


  • Normal
  • StretchImage
  • AutoSize
  • CenterImage
  • Zoom

の5つ。


[Normal]を指定すると、「画像の左上」と「コントロールの左上」の位置があうように画像が表示されます。画像サイズは100%のサイズで表示されるので、コントロールからはみ出た部分は表示されまん。今の状態。


[StretchImage]を指定すると、コントロールのサイズにフィットするように、画像サイズが拡大縮小されます。


[AutoSize]を指定すると、画像のサイズにフィットするように、コントロールサイズが拡大


[CenterImage]を指定すると、「画像の中央」と「コントロールの中央」の位置があうように画像が表示されます。画像サイズは100%のサイズで表示されるので、コントロールからはみ出た部分は表示されまん。


[Zoom]を指定すると、コントロールのサイズにフィットするように、画像サイズが縦横比率をたもった状態で拡大縮小されます。




実際に5つの指定をしたのがこれ
↓ ↓ ↓

PictureBoxコントロールを5つ設置しています。
SizeModeプロパティ以外はすべて同じ値。

「BackColor」プロパティで背景色をBlack。
「Size」プロパティでコントロールのサイズを100,100。
「Image」プロパティに同じ画像を指定。

ちなみサンプルで利用している画像は、こちらのサイトの画像を利用させていただきました。
↓ ↓ ↓ 
写真素材 足成

C# タイトルバーのアイコンの設定

フォームのタイトルバーに表示されるアイコンの設定方法。

まずはアイコンを設定するフォームのプロパティを表示し、Iconプロパティをクリックする。
すると、[...]ボタンが表示されるので、これをクリック。



タイトルバーに表示させるアイコンを選択し、[開く]をクリック。



これで、指定したアイコンがタイトルバーに表示されるようになる。

なお、フォームに表示するアイコンを指定すると「Form1.resx」というリソースを管理するファイルが作成され、フォームに関連付けられるようだ。



リソースに関するファイルの理解が不足しているので、勉強が必要。

C# フォーム(ウィンドウ)の表示位置の指定

C#でフォーム(ウィンドウ)の初期表示位置を指定する方法。

フォームの初期表示位置は、「StartPosition」プロパティで指定する。
なお、指定できる値は「FormStartPosition 列挙体」で定義されている。


  • Manual
  • CenterScreen
  • WindowsDefaultLocation
  • WindowsDefaultBounds
  • CenterParent

の5つ

●Manualを指定
Manualを指定すると、フォームの表示位置はLocationプロパティに値できまる。


ここでは、Locationプロパティに「0,0」を指定しているので、デスクトップ左上にフォーム左上が表示される。




CenterScreenを指定
CenterScreenを指定すると、スクリーンの中央にフォームが表示される。


WindowsDefaultLocationを指定
WindowsDefaultLocationを指定すると、Windows の既定位置にフォームが表示される。
実行するたびに表示される位置が変わる。
(毎回おなじ位置に表示されるわけではない)。


WindowsDefaultBoundsを指定
WindowsDefaultBoundsを指定すると、Windowsの既定位置にフォームが表示される。
ちなみに、WindowsDefaultLocationを指定するとフォームのサイズもWindowsの既定により決定されるようだ。






CenterParentを指定
CenterParentを指定すると、親フォームの中央に表示される。


C# プロジェクトリソースの設定&読み込み

プロジェクトに関連づけれらたリソースの設定と読み込み方法(C#)

■設定方法
プロジェクトに関連づけられたリソースを設定するには、ソリューションエクスプローラからプロジェクトを右クリックし[プロパティ]を選択する。



プロジェクトのプロパティが表示されるので、[リソース]タブを選択し、
リソースの名前/値/コメントを入力する。



「名前」はプログラムからリソースを指定するためのもの。
「値」はリソースの値。そのまま。
「コメント」は、リソースが何のためのリソースなのか?あとで見てもわかるようにするためのもの

ここで入力した内容は、PropertiesフォルダのResources.resxファイルに格納され、
ビルドすると「.exe」や「.dll」に組み込まれる。



■読み込み方法
これまでの流れで、リソースが「.exe」や「dll」に組み込むことができたので、
ここからは組み込んだリソースを読み込む方法を確認する。

組み込んだリソースにアクセスするには、
「ルート名」と「キー名」を指定する必要がある。

ルート名は、「global::規定の名前空間.フォルダ名.ファイル名」。
キー名は、リソースの設定で入力した名前のこと。


ルート名がわかりにくいので、ひとつずつ確認。
まず、「規定の名前空間」ですが、これはプロジェクトのプロパティを表示し[アプリケーション]タブを選択すると、「規定の名前空間」項目があるのでこれを指定する。





フォルダ名は「Properties」
ファイル名は「Resources(拡張子は含めない)」

よって、このサンプルでのルート名は
「global::ProjResource.Properties.Resources」となる。

実際にリソースにアクセスするには、キー名も含めるので、
「global::ProjResource.Properties.Resources.test」となる。




■参考にしたサイト
@IT 文字列リソースを活用するには?[2.0のみ、C#、VB]

2012年7月14日土曜日

C# フォームアプリケーションの設定を保存&読み込み


アプリケーション固有の情報をXML形式で扱う手順を説明。

ソリューションエクスプローラでプロジェクトを右クリック → [プロパティ]をクリック。




[設定]タブをクリックし、
名前/型/スコープ/値を入力する。

名前は、プログラムで値を取得&設定するときに利用する。

型は、扱う値の型。

スコープは、値の取得と設定を制限するために利用する。
「アプリケーション」を指定した場合は、値の取得のみが可能。
「ユーザー」を指定した場合は、取得と設定が可能になる。

書き換える必要のない設定値なら「アプリケーション」を
ユーザーが設定を変更できるようにしたいなら「ユーザー」を選択する。といった感じでしょうか。

値は、設定値そのもの。


アプリケーションの設定をしビルドをすると、
「アプリケーション名.exe.config」ファイルが作成される。

スコープで「ユーザー」指定した値をプログラムから設定すると、
設定した値は「user.config」ファイルが作成され、このファイルに保存される。

プログラムでの設定は「アプリケーション名.exe.config」ファイルには反映(影響)されないようだ。


「アプリケーション名.exe.config」ファイルや、「user.config」ファイルの値を読み書きする方法はつぎのとおり。

「Properties.Settings.Default.名前」で値を取得します。
名前は、2番目の画像で指定した名前です。

値の設定は、「Properties.Settings.Default.名前」で設定し、「Properties.Settings.Default.Save();」をよびだし保存します。Saveメソッドを呼び出さなければファイルに書き込まれません。

コメント部分は、コンパイルエラーになります。
理由は、2番目の画像でスコープを「アプリケーション」で指定してあるため。「アプリケーション」を指定した場合は読み込み専用になります。

書き込む場合は、「ユーザー」を指定します。

2012年7月9日月曜日

c# htmlファイルの取得

c#でhtmlファイルを取得する方法。

[コード]
WebClient wc = new WebClient();

using (Stream st = wc.OpenRead("http://study-csharp.blogspot.jp/"))
{
    using (StreamReader sr = new StreamReader(st, Encoding.UTF8))
    {
        string html = sr.ReadToEnd();
        Console.Write(html);
    }
}



[説明]
htmlファイルを取得するには「WebClientクラス」を利用する。
OpenReadメソッドでリソースを取得するためのStreamインスタンスを作成。

作成したストリームからリソースを文字列(テキスト)として取得するには、StreamReaderクラスを利用する。インスタンス作成時に「ストリーム」と「エンコーディング」を指定する。

あとは、StreamReaderのインスタンスのReadToEndメソッドでhtmlファイルの内容をすべて取得する。




[参考にしたページ]
WebClientクラスでWebページを取得するには?

2012年7月7日土曜日

C# ファイルの読み込み&書き込み

c#でファイルを読み込み&書き込み。


C# ファイルダイアログでファイルを選択する

ファイルダイアログを表示してファイルを選択する方法。


2012年7月6日金曜日

C# フォームをモーダルで開く

C#でフォームをモーダルで開く方法。


C# メッセージボックスの表示

C#でメッセージボックスを表示する方法。


2012年7月5日木曜日

C# ラジオボタンの値の設定&取得

C#でラジオボタンの値を設定&取得する方法。


C# コンボボックスの値の設定&取得

C#でコンボボックスの値を設定&取得する方法。


C# チェックボックスの値の設定&取得

C#でチェックボックスの値を設定&取得する方法。


C# リストボックスの値の設定&取得

C#でテキストボックスの値を設定する方法と値を取得する方法。



C# テキストボックスの値の設定&取得

C#でテキストボックスの値を設定する方法と値を取得する方法。





C# ラベルコントロールの値の設定&取得

C#でラベルコントロールの値を設定する方法と値を取得する方法。



c# Hello World

c#の基本構造
(windowsフォームアプリケーション)

ウィンドウタイトルに「Hello World」と表示させる。