超初心者のプログラム入門(C#)

前田稔(Maeda Minoru)の超初心者のプログラム入門(C#)のページへようこそ。
Console Mode & Windows Mode & Game Program も掲載しています。 (^_^; 
C#ページ検索抜粋
 前田稔の超初心者のプログラム入門
前田稔の超初心者のプログラム入門

C# index
 Programming Guide
Programming Guide
 C# Console Mode Program
C# Console Mode Program
C#プログラム紹介
  - C# Program Guide 
 C#はC言語の後継言語で「C言語より半音高い(#)仕様?」の言語です。
 
- テンプレートを使って Hello C#
 C# のテンプレートを使って、WriteLine で "Hello C# Console Programing" と表示します。
 
- Hello C#
 [空のプロジェクト] の作成方法と簡単なプログラムの書き方を学んで下さい。
 
- 変数の値を表示する 
 変数に格納されている数値と文字を C# の WriteLine で編集して表示します。
 ☆Windows モードで WriteLine を実行すると出力ウインドウに印字されます。
 
- 日付と時刻を表示する 
 本日の日付と現在の時刻を C# の DateTime で取得します。
 
- 数値の計算をする
 変数に格納されている数値の計算結果を C# の WriteLine で表示します。
 
- 変数の値を入れ替える
 二個の変数の値を入れ替えます。代入の基礎です。
 
- 三個の最大値
 三個の変数から最も大きい値を調べて表示します。C# if 命令(比較)の基礎です。
 
- 三個のソート
 三個の変数を昇順(小さい順)に並べ換えます。
 
- 1~100までの合計
 1~100までの合計を表示します。C# for ループの基礎です。
 
 C#プログラム入門
- While Loop
 While Loop(条件ループ)で最大公約数(GCM)を求めます。
 
- 変数を編集して表示する
 String型や int型を c# WriteLine で編集して表示します。
 
- コンソールから入力する
 名前と年齢を C# ReadLine でコンソールから入力して表示します。
 
- C#算術データの型
 C#で使われる代表的な算術データの型と、最小値(MinValue)と最大値(MaxValue)の説明です。
 
- データの編集と表示 
 C#でC言語の printf() と同様に、データを編集して表示します。
 
- String を int に変換
 コンソールから入力した文字列(String)を C# の Convert.ToInt32 で int に変換して計算します。
 
- 入力データの最大値
 C# の ReadLine でコンソール入力されたデータの中から最大値を見つけ出して表示します。
 
- 乱数の発生
 C# の new Random() で「0~99」の乱数を発生させます。
 
 配列
- 配列の基礎 
 C# で int 型の1次元配列を定義します。
 
- 配列の比較
 C# で配列を比較します。
 
- 二次元配列を定義
 C# で二次元配列を定義します。
 
- 配列のコピー
 short 型の二次元配列を例に、コピーの説明です。
 
- 連想配列 
 C# で連想配列を使います。
 
- dynamic にサイズを設定
 C# で二次元配列のサイズを dynamic に設定します。
 
- Object Class の配列
 C# で Object Class の配列を使います。
 
- ArrayList の基礎 
 C# の ArrayList で int 型のデータを登録します。
 
- Object Class を登録
 C# で ArrayList に Object Class(Struct) を登録します。
 
- ArrayList にミックスで登録
 C# の ArrayList に複数の型をミックスして登録します。
 
- ListGeneric
 C# の List ジェネリック・クラスで string を使います。
 
 string
- string⇔char[]
 C# の string 型と char 型と char 配列の説明です。
 
- Character Code 
 C# の Character Code(Unicode)を調べます。
 
- Substring
 Substring で文字列の一部を取り出します。
 大文字/小文字を区別しないで比較します。
 
- string ⇔ byte
 str(C#の内部コード)を Shift_JIS に変換します。
 Shift_JIS を str(C#の内部コード)に変換します。
 
- カンマで区切られた数字を配列に変換
 C# でカンマで区切られた数字の列を、int 型の配列に格納します。
 
- カンマで区切られた文字列を文字列の配列に変換 
 C# でカンマで区切られた string を切り分けて string の配列に変換します。
 配列 ⇔ string 相互に変換します。
 
- 文字列の検索と置換 
 string(文字列)の検索と置き換えです。
 大文字/小文字を区別しないで検索します。
 改行コードが邪魔になるとき、取り除きます。
 
- 文字列の反転
 string(文字列)の反転と連続する文字を一個にまとめます。
 
- Command Line 引数 
 Command Line から渡された引数を取得します。
 Command Line の引数はストリング配列(string[])です。
 
 メソッド(関数)
- メソッド(method) の定義 
 C# でメソッド(メンバー関数) を定義して呼び出します。
 
- 共通領域
 共通領域に Main とメソッド(関数)からアクセスします。
 
- out パラメータを使う
 C# のメソッドのパラメータとして out を使います。
 
- Sort XYZ
 ref(reference) パラメータを使って X,Y,Z をソートします。
 
- 配列を渡してソートする
 C# のメソッド(method)にパラメータとして配列を渡してソートします。
 
 再起関数
- 再起関数の基礎
 C# の再起関数(recursive function) で GCM(最大公約数)を求めます。
 
- 「1~n」までの和を求める再起関数
 C# の再起関数で「1~n」までの和を求めます。
 再起関数から戻るときに処理する基本的な方法です。
 
- 再起関数でソート
 C# で最大20件分のデータ領域(配列)を定義して、再起関数でソートします。
 
- *で囲まれた中を塗りつぶす
 *で囲まれた中を塗りつぶす「C# 再起関数」のプログラムです。
 
- 迷路探索のプログラム
 *で囲まれた迷路を探索してゴールに到達する「C# 再起関数」のプログラムです。
 
- 順列組み合わせを表示
 順列組み合わせを C# の再起関数で求めます。
 
- ペグ・ソリティアを解く
 C# の再起関数でペグ・ソリティアゲームの答えを見つけ出します。
 
 C# File 入出力
- TEXT File の入力 
 C# の StreamReader で TEXT File を入力して Console 画面に表示します。
 
- TEXT File の出力 
 C# の StreamWriter でTEXT データを File に出力します。
 
- BYTE DATA の出力
 C# の FileStream でバイナリー形式のデータ(BYTE DATA)を File に出力します。
 
- BYTE DATA の入力
 C# の FileStream でバイナリー形式のデータ(BYTE DATA)を入力して編集して表示します。
 
- binary DATA の出力
 C# の FileStream で binary data を出力バイト長を指定して File に保存します。
 
- binary DATA の入力
 C# の FileStream で binary data を入力バイト長を指定して File から読み込みます。
 ファイルをコピーする関数を作成します。
 
- TEXT 形式でデータを出力
 C# の StreamWriter で整数データを TEXT 形式に変換して File に出力します。
 
- TEXT 形式のデータを入力
 C# の StreamReader で TEXT 形式の整数データを入力します。
 
- 文字コードを指定して入力
 文字コードの異なるファイルを入力します。
 
- 文字コードを指定して出力
 文字コードの異なるファイルを作成します。
 
- 文字コードを調べて入力
 ファイルの文字コードを調べて入力します。
 
- ファイル操作
 ファイルの「コピー, 削除, 名前変更, 移動, 存在確認」などを行います。
 
- Folder Copy
 C# でフォルダーを再起的にコピーします。
 
- Folder Delete
 C# でフォルダーを削除します。
 
 C# Object Class
- static メソッドを定義
 C# でメインとは別の Class を作成して、static メソッドを定義します。
 
- gcmlcm Class を定義 
 C# 言語で一般的な方法で gcmlcm Class を定義します。
 ☆Main() と gcmlcm Class のファイルを分けて格納してみます。
 
- Partial を使う
 Partial を宣言した Class は一つにまとめられます。
 
- Sample Class
 配列をパラメータとする Object Class のサンプルです。
 ☆C/C++ との違いを学んで下さい。
 
- Class のデータに直接アクセス
 C# で gcmlcm Class 内で定義されているデータ領域に直接アクセスします。
 
- Set,Get アクセッサ
 C# で Set アクセッサ, Get アクセッサを使って Class 内で定義されているデータ領域にアクセスします。
 
- Parameter
 関数に渡したパラメータの値を変更して、元のデータに及ぶ影響を調べます。
 
- Static
 Static 宣言と Object Class の関係です。
 
- Class の継承
 C# で GCM Class を継承して LCM Class を定義します。
 
- メソッドのオーバーライド
 C# で継承した Class のメソッドを override(オーバーライド)します。
 
- Dispose で資源を解放
 IDisposable を継承して、資源を解放します。
 
- 抽象クラスでジャンケンの判定
 抽象クラスを使った、ジャンケンの勝ち負けを調べるクラスです。
 
 struct(構造体)
- XY座標構造体を定義
 C# でXY座標構造体を定義します。
 
- gcmlcm struct を定義
 C# で gcmlcm Class に習って gcmlcm struct を定義します。
 
- class と struct の違い
 C# で class と struct の違いを検証します。
 
- struct をパラメータで渡す
 C# で struct をパラメータとして渡します。
 
- 構造体に初期値を設定
 構造体に初期値を設定します。
 
- 構造体の入れ子
 C# で構造体の中で構造体を使う「構造体の入れ子」です。
 
 try(トライ)&catch(キャッチ)
- try&catch
 try(トライ)&catch(キャッチ)の説明です。
 
- finally
 try & catch & finally を使います。
 
- throw
 throw で例外を投げて、catch() で受け取ります。
 
 List 連鎖
- List 連鎖の基礎
 C# で List 構造をプログラムします。
 
- List を正順(逆順)で印字
 連鎖した List構造を、正順(逆順)に印字します。
 
- List のセルを削除する
 List に登録されているセルを削除します。
 
- List Object Class
 C# で List Object Class を作成します。
 
- ArrayList の連鎖
 C# で ArrayList を連鎖するプログラムです。
 
 Binary Tree
- Binary Tree の基礎
 C# で Binary Tree の Object Class を作成します。
 
- Car, Cdr で連鎖
 Binary Tree の Car と Cdr を使って連鎖します。
 
- Binary Tree ソート
 Binary Tree で昇順にソートして印字します。
 
 Generics
- generics の基礎
 C# で generics(総称性)を使ったメソッドを定義します。
 
- generics を使った加算メソッド
 C# で generics(総称性)を使って加算メソッドを作成します。
 
- generics を使った比較メソッド
 C# で generics を使って比較メソッドを作成します。
 
- generics を使った Class
 C# で generics を使った Class のサンプルプログラムです。
 
- generics を使って Stack を作成
 C# で generics を使って Stack Class を作成します。
 
 インターフェース
- interface
 interface(インターフェース)の説明です。
 
- interface-2
 複数のインターフェースを継承します。
 
 スレッド
- スレッドを起動
 スレッドの説明と、基本プログラムです。
 
- Thread NowTime Class
 NowTime Class のメソッドを Thread で起動します。
 
- スレッドの中断
 スレッドの実行を中断します。
 
 XML(ExtensibleMarkupLanguage)
- XML Save&Load
 XML ファイルの作成と入力の基礎です。
 
- 成績データ XML
 成績データ XML(簡易データベース)の作成と利用方法です。
 
- XHTML とは
 XHTML は XML に準拠した HTML の後継仕様です。
 
 Pointer
- Pointer を使う
 C# で unsafe の設定をして、int 型の Pointer を使います。
 
- int型を byte型の Pointer に Cast
 C# で byte型の Pointer で int型のデータに Cast して、メモリの内容を16進数でダンプします。
 
- byte型の Pointer で char型を Cast
 C# で byte型の Pointer で char型のデータに Cast して、メモリの内容を16進数でダンプします。
 
- byte型の Pointer で文字を設定
 C# で byte型の Pointer で char型のデータに Cast して、16進数で文字を設定します。
 
- メソッドのパラメータとしてポインタを渡す
 C# で メソッドのパラメータとして int型のポインタを渡して、値を設定して返します。
 
- 配列のポインタ
 ポインタを使って配列にアクセスします。
 
- TEXT の暗号化
 TEXT(string) を暗号化して UTF-8 で書き出します。
 
- TEXT の複合化
 暗号化して書き出された UTF-8 のファイルを複合化します。
 
 Delegate
- Delegate の基礎
 C# の デリゲート(委譲)の基礎です。
 
- Delegate を渡す
 C# で Delegate を引数として渡します。
 
- メソッド名やクラス名を表示
 Delegate で設定されたメソッド名やクラス名を表示します。
 
- メソッドの追加と削除
 移譲先リストに複数のメソッドを「追加/削除」します。
 
- 非同期で呼び出す
 デリゲートを非同期で呼び出します。
 
 Event
- Event の基礎
 C# のイベント(事象)呼び出しの基礎です。
 
- 複数のハンドラを割り当てる
 C# で1個のイベントに複数のハンドラを割り当てます。
 
- event 呼び出しでパラメータを渡す
 C# でイベントを呼び出すときにパラメータを渡します。
 
 Proxy
- Proxy の基礎
 C# のプロキシ(代理/委任)の基礎です。
 
- 複数メソッドを定義
 プロキシで複数のメソッドを定義します。
 
 DLL(Dynamic Link Library)
 ☆C/C++⇒C# DLL の記述があるページは、C/C++ から DLL を呼び出すページにリンクしています。
- C# Hello DLL
 "C# Hello DLL" を印字する Class を登録した DLL を作成します。
 ☆C/C++⇒C# DLL
 
- C# GcmLcm.dll
 GCM と LCM を計算する Class を登録した DLL を作成します。
 ☆C/C++⇒C# DLL
 
- こよみ DLL
 年月日を入力すると、曜日と経過日数を計算する Class を登録した DLL を提供します。
 
- C#⇒C/C++ Hello.dll
 C# から C/C++ でクラスを登録した Hello.dll を呼び出します。
 
- C#⇒C++/GcmDLL
 C# から C/C++ でクラスを登録した GclLcm.dll を呼び出します。
 
- C#⇒DLL(HelloMsg)
 C# から C/C++ で HelloMsg 関数を登録した DLL を呼び出します。
 
- C#⇒DLL(GCM,LCM)
 C# から C/C++ で GCM,LCM 関数を登録した DLL を呼び出します。
 
- C#⇒DLL(CharMsg)
 C# から C/C++ のポインター引数を持つ DLL の関数 CharMsg(wchar_t*) を呼び出します。
 
- DLL Command
 コマンドプロンプトから C# の DLL を作成します。
 
- Math Library
 AddClass と MultiplyClass を登録した C# の DLL を作成します。
 
 Console の演習問題
 
- ボーリングのブービー
 5人のボーリングの成績からブービー(booby)の点数を表示します。
 
- 分数の計算
 分数の加減算をして、結果を分数で表示します。
 
- 平方根の計算
 平方根の計算には「ニュートン・ラプソン」の方法と言う有名な解法があります。
 
- 正多角形で円周率を計算
 円に内接する正多角形を用いて円周率を計算します。
 
- 素因数に分解する
 整数nを素因数に分解して表示します。
 
- 約数を洗い出す
 整数nを割り切る全ての約数を洗い出して表示します。
 
- 素数の判定
 コンソールから入力した値が、素数か合成数かを判定します。
 
- 素数の一覧を表示する
 エラトステネスのふるいで 1000 以下の素数を求めて表示します。
 
- 偶数の魔方陣を作成する
 4,8,16, ...などの偶数の魔方陣を作成します。
 
- 奇数の魔方陣を作成する
 3,5,7, ...などの奇数の魔方陣を作成します。
 
- 年月日を入力して、曜日と経過日数を表示
 C#の Console.ReadLine で年月日を入力して、曜日と経過日数を表示します。
 
- 2倍すると最後尾の数字が先頭に
 ある長い数列があり、2倍すると最後尾の数字(8)が先頭に移動します。
 自前で作成した C# の List Object Class を使って、元の数列を求めて表示して下さい。
 
- C#で約4000桁の円周率を求めて表示してみましょう。
 コンピュータの実行時間さえ許されるならば、ほんの少し修正するだけで10万桁ぐらいは計算できるかも知れません。 (^_^;
 
      - 円周率の話と実行結果
 
- データの形式
 
- 4000桁の値を表示
 
- 円周率を求める公式
 
- Add メソッド
 
 
 C# Windows Program
C# Windows Program
Form(Window)を表示
  - 自動生成を使って Form を作成
 C# の自動生成を使って Form(ウインドウ) を作成します。
 
- Form を作成する
 C# で空のプロジェクトから Form(Window) を表示します。
 
- 背景色とキャプションを設定
 Window の背景色とキャプションの設定です。
 
- カレンダーを表示する
 C# の自動生成を使って、カレンダーを表示するプログラムを作成します。
 内幕を知らなければ「すごい」と関心されることでしょう。
 ☆[デザイン]と[ツールボックス]の基本的な使い方です。
 
- カレンダーを表示する
 C# で空のプロジェクトから、カレンダーを表示するプログラムを作成します。
 ☆InitializeComponent() メソッドのソースコードが追加されます。
 
 Form に描画
- 線を描画する
 C# の自動生成を使って、線を描画します。
 
- Line を描画する
 空のプロジェクトから DrawLine で線を描画します。
 
- 図形を描画する
 「線(DrawLine), 矩形(DrawRectangle), 楕円/円(DrawEllipse)」を描画します。
 
- 三角形を描画する
 C# の DrawLine を繰り返して三角形を描画します。
 オーバーライドを使います。
 
- 大きな文字を表示する
 C# の自動生成を使って、ウインドウに大きな文字を表示します。
 
- 大きな文字を表示する
 空のプロジェクトから、ウインドウに大きな文字を表示します。
 
- Goban
 図形を使って碁盤を表示します。
 
 マウス
- マウスのクリックを検出する
 マウスのクリックを検出して MessageBox を表示します。
 左クリック・右クリックの識別方法も説明します。
 
- マウスのクリックで終了確認 
 マウスがクリックされると、終了確認の MessageBox を表示します。
 ☆一般的な終了確認の方法を紹介します。
 
- Click Position
 マウスがクリックされた座標をキャプションに表示します。
 
- Beep 音を鳴らす 
 マウスのクリックで Beep 音を鳴らす。
 
- マウスをキャプチャする
 マウスをキャプチャして、移動中の座標を表示します。
 
 キー
- ESC キーで終了
 ESC キーが押されるとプログラムを終了します。
 
- キー操作で幅と高さを変更する 
 矢印キーでウインドウの幅と高さを変更します。
 ☆Console.WriteLine() で「出力ウインドウ」に印字します。
 
- キー操作で画像を移動する
 矢印キーで上下左右に画像を移動します。
 矢印キーに加えて、Shift+(ADWX)でも操作出来るようにプログラムします。
 画像を描画する IMAGE Class を使ってみました。
 
 Image の描画
 単純な画像の描画は キー操作で画像を移動する の class IMAGE を推奨します。
 画像の切り分けは カードを描画 の class Card を推奨します。
 
- 画像ファイルを描画する
 GIF 画像をファイルから直接入力して、C# の DrawImage で描画します。
 Bitmap に画像をロードして、Bitmap から描画します。
 
- リソースで取り込んだイメージを描画する
 C# で GIF 画像をリソースとして取り込んで、DrawImage で描画します。
 
- Sprite を切り出す 
 大きな画像から Sprite を切り出して描画します。
 
- Sprite を切り替える
 マウスのクリックで Sprite を切り替えます。
 
- 画像を切り分ける
 Bitmap の Graphics を取得して画像を切り分けます。
 
- 画像描画 etc
 画像を「拡大縮小・反転・回転・平行四辺形の変形」などで描画します。
 
- 専用 icon を設定
 Window(Form)に専用の icon を設定します。
 
- ImageList の基礎
 Image List に画像を登録します。
 
- クリックで切り替える
 Dog1.bmp ~ Dog5.bmp をマウスのクリックで画像を切り替えます。
 
- 画像を分割して登録
 16枚の画像を切り分けて Imagelist に登録します。
 
- 美人のアニメーション
 画像を切り分けてタイマー設定でアニメーションします。
 
Windows Tool の使い方
Button
  - ボタンを貼り付ける
 自動生成のプロジェクトで ToolBox からボタンを貼り付けます。
 ☆イベント(稲妻アイコン)の基本的な使い方です。
 
- ToolBox からボタンを貼り付ける
 空から作成したプロジェクトで ToolBox からボタンを貼り付けます。
 
- 直接ボタンを貼り付ける
 ツールボックスを使わないで、直接 Form にボタンを貼り付けます。
 
 Text Box
- TextBox 
 C# の自動生成を使って TextBox, Label, Button を貼り付けます。
 
- TextBox と Button を貼り付ける
 空のプロジェクトで ToolBox からボタンとテキストボックスを貼り付けます。
 
- 直接 TextBox と Button を貼り付ける
 ツールボックスを使わないで、直接 TextBox と Button を貼り付けます。
 
- 16進数+文字で TextBox に表示する
 string で定義した文字列を16進数+文字で TextBox に表示します。
 
- 画像ファイルの名前を TextBox から入力
 Button をクリックすると TextBox で指定した画像ファイルを描画します。
 
 Rich Text Box
- RichTextBox
 C# の自動生成を使って RichTextBox を貼り付けます。
 
- Rich Font
 RichTextBox にフォントを設定します。
 
- RichTextBox
 空から作成したプロジェクトに RichTextBox を貼り付けます。
 KeyWord を検索して、色やフォントを設定します。
 
- RichSaveLoad
 RichTextBox の状態を Save, Load します。
 
- Text File
 RichTextBox にファイルからテキストデータを入力/保存します。
 
- Replace
 RichTextBox に文字列を挿入します。
 RichTextBox で、文字の置換です。
 RichTextBox で、文字列の置換です。
 
- Delete
 RichTextBox から文字列を削除します。
 RichTextBox から行を削除します。
 
- Rich Contex 
 RichTextBox に Contex Menu を設定します。
 ☆Text Editor に必要なメソッドを抜粋します。
 
- Rich KeyDown
 RichTextBox で Function キーを使います。
 Function キーで Keyword の選択と検索を行います。
 
- Key Search 
 RichTextBox を KeyWord で検索します。
 RichTextBox のダブルクリックでメソッドを呼び出します。
 
- Form Size
 ウインドウサイズの拡大/縮小に対応します。
 
 Picture Box
- PictureBox に画像を描画
 ウインドウに PictureBox を貼り付けて画像を描画します。
 
- PictureBox の画像を切り替える
 ToolBox を使わずに PictureBox と Button を貼り付けて、二枚の画像を切り替えます。
 
- PictureBox の画像の上から図形を描く
 ToolBox を使わずに PictureBox を貼り付けて、PaintHandler で画像の上から図形を描きます。
 
- MyHandler() で PictureBox に図形を描く
 ウインドウに PictureBox を貼り付けて、MyHandler() で図形を描きます。
 
- MyHandler() で PictureBox に Text を表示
 ウインドウに PictureBox を貼り付けて、MyHandler() で Text を表示します。
 
- button の背景に画像を描く
 Button の背景に画像を描きます。
 
 Common Dialog
- Open File Dialog
 自動生成で Open File Dialog からファイルを選択します。
 
- Color Dialog
 自動生成で ColorDialog から TextBox の背景色を選択します。
 
- Open File Dialog
 空のプロジェクトから Open File Dialog を組み込みます。
 
- Save File Dialog
 空のプロジェクトから Save File Dialog を組み込みます。
 
- Folder Browser Dialog
 FolderBrowserDialog で Folder を選択します。
 
- Font Dialog
 FontDialog から選択したフォントと色で表示します。
 
- Color Dialog
 ColorDialog から TextBox の背景色を選択します。
 
 メニューの設定
- ToolBox からメニューを貼り付ける
 ToolBox からメニューを貼り付けます。
 
- メニューを設定する
 ToolBox を使わずにプログラムの終了とバージョン情報のメニューを設定します。
 
- 画像ファイルを選択 
 画像ファイルを選択して描画するメニューを設定します。
 ☆Single Thread Apartment(STA)モードに設定します。
 
- メニューにアイコンを設定
 メニューバーに Icon を設定します。
 
- ToolStrip(ToolBar)を設定する
 クリック一発で起動する ToolStrip(ToolBar)を設定します。
 
- ToolStripContainer を設定する
 ToolStrip をウインドウの左右上下に移動出来るようになります。
 
- ContextMenu を設定する
 マウスの右クリックで起動するメニューを設定します。
 
 Timer
- タイマ割り込みでカウントする
 自動生成のプロジェクトで Timer 割り込みでカウントします。
 
- タイマ割り込みでカウントする
 空のプロジェクトから Timer を貼り付けてカウントします。
 
- 直接 Timer を貼り付ける
 ツールボックスを使わないで、直接 Timer を貼り付けます。
 
 List Box & List View
- ListBox に登録する
 C# で String で定義したアイテムを ListBox に登録します。
 
- ListBox に TEXT を表示する
 ソースファイルを入力して ListBox に表示します。
 
- 選択された行を取得する
 SelectedIndexChanged プロパティで選択された行を取得します。
 
- ListBox Directory
 C# で Directory を検索して、ファイル一覧を ListBox に表示します。
 
- ListView に登録する
 C# で ListView にアイテムを登録します。
 
- アイテム名の変更
 C# で ListView に登録したアイテムの名前を変更します。
 
- ListView Icon
 ListView にアイコンを設定します。
 
- ListView に Column を設定する
 ListView に Column を設定します。
 
- 表示の切り替え
 ListView の表示形式を切り替えます。
 
- ListView Item 選択
 ListView から Item を選択して MessageBox に表示します。
 シングル/ダブルの検出方法も説明します。
 
- ListView Directory
 Directory を検索して「"名前", "更新日付", "サイズ"」を表示します。
 
- ListView Directory Icon
 C# で Directory を検索してアイコンを付けて表示します。
 
- ListView Sort
 ListView のカラムクリックでアイテムをソートします。
 
 Tree View
- TreeView に登録する
 C# で TreeView にノードを登録します。
 
- TreeView に階層で登録
 C# で TreeView にノードを階層構造で登録します。
 TreeView に登録したノードを削除します。
 
- レベル指定の Data を TreeView に登録
 string で定義したレベル指定の Data を TreeView に登録します。
 
- Struct を TreeView に登録
 string で定義した構造体 を TreeView に登録します。
 ★原因不明の現象です。
 
- TreeView Click
 C# で TreeView のノードを右クリックすると MessageBox を表示します。
 
- TreeView 親ノード
 TreeView でクリックされたノードの親を調べます。
 Command Line からコンパイル出来る形式で掲載します。
 
- 子・孫を再起でトレース
 TreeView でクリックされたノードの子・孫を再起でトレースします。
 
- Drive Icon
 C# でドライブを検索して TreeView に登録します。
 
- Expand
 TreeView のドライブをクリックするとノードを展開します。
 
 Radio Button
- Radio Button
 Radio Button の説明です。
 
- Radio Button & GroupBox
 Radio Button を GroupBox で囲みます。
 
 Tab Control
- TabControl
 C# の自動生成を使って TabControl を貼り付けます。
 
- TabPage 番号を表示
 TabPage のクリックで RichTextBox にページ番号を表示します。
 
 Split
- SplitContainer 
 C# の SplitContainer でウインドウを分割します。
 
- FolderView 
 C# で TreeView と ListView を並べてフォルダを表示します。
 
- Handler
 C# で作成した File Handler の原型です。
 
 C# CLI Project
C# CLI Project
CLI の Project は *.cs ファイル一本で動きます。
CLI Console Mode
  - CLI Guid 
 Command Line から CLI Mode のプログラムをコンパイルして実行します。
 
- コンソールから入力する
 CLI で ReadLine を使って TEXT を入力します。
 
- 配列の基礎
 CLI で int 型の1次元配列を定義します。
 
- 二次元配列
 CLI で2次元配列を定義します。
 
- 関数を定義
 CLI でメソッド(メンバー関数) を定義して呼び出します。
 
- Sort XYZ
 ref パラメータで「X,Y,Z」を昇順に並べます。
 
- Text 入出力
 CLI で Text Data の入力と出力をします。
 
- ArrayList を使った二次元配列
 ArrayList を使って、二次元の String 配列を定義します。
 
- ArrayList の配列
 ArrayList の配列(配列の要素が ArrayList)を使います。
 
- gcm Class を定義
 C# 言語で一般的な gcm Class を定義します。
 
- Class ファイルを分ける
 Main() メソッドと Object Class のファイルを分けます。
 
- 曜日と日数の計算
 事件が発生した日付をタイプして、曜日と本日までの経過日数を計算します。
 
 CLI Windows Mode
- Windows を表示
 Command Line から Windows プログラムを実行します。
 
- 背景色とキャプションを設定
 CLI のプロジェクトで背景色とキャプションを設定します。
 
- 専用アイコンを設定 
 プログラムを起動すると、専用のアイコンがフォームの左上に表示されます。
 
- マウスのクリック座標を印字
 マウスの左/右クリックを検出して、座標を印字します。
 
- Line を描画する
 DrawLine で線を描画します。
 
- 三角形を描画する
 DrawLine を繰り返して三角形を描画します。
 
- 大きな文字を表示する
 ウインドウに大きな文字を表示します。
 
- 画像ファイルを描画する
 BMP 画像をファイルから直接入力して DrawImage で描画します。
 
- 画像ファイルを選択
 画像ファイルを選択して描画するメニューを設定します。
 
- Sprite を切り替える
 マウスのクリックで Sprite を切り替えます。
 
- TextBox と Button を貼り付ける
 ボタンをクリックするとメッセージを取得して表示します。
 
- Ritch Text Box
 CLI で Ritch Text Box を貼り付けます。
 
- RitchText ContexMenu 
 CLI で Ritch Text Box に右クリックメニューを設定します。
 
- タイマー割り込み
 タイマー割り込みでカウンターを表示します。
 
- Counter Class
 カウンタークラスで、数字の画像を切り分けてカウンターを表示します。
 
- CLI Windows で「じゃんけんゲーム」を作成する。
 
      - 画像の確認
 「じゃんけんゲーム」で使用する画像を確認します。
 
- グー・チョキ・パーを選択
 ラジオボタンで「グー・チョキ・パー」を選択します。
 
- 得点を計算
 得点を計算して TextBox に印字します。
 コンピュータは乱数で手を決めます。
 
- じゃんけんゲームの完成
 コンピュータの思考関数を作成してゲームの完成です。
 
- じゃんけん Class
 じゃんけんゲームに白番のクラスファイル(W_Sumaho.cs) を組み込みます。
 
- じゃんけんバトルゲーム
 プログラム同士が対戦する「じゃんけんバトルゲーム」を作成します。
 
 
 C# Program Note
C# Program Note
C# Multi Windows
  
MessageBox
    - MessageBox を表示する
 Console Mode で「MessageBox を使って終了確認」を行います。
 
- int 型を MessageBox に表示する
 Console Mode で int 型を文字列に変換して MessageBox に表示します。
 
 Form2
- Form-2
 C# で新しいフォーム(Form2)を追加します。
 
- Multi Window Animetion
 Button をクリックすると、次々とアニメーションウインドウが開きます。
 
- Form Size(Max & Min)
 Button のクリックで、アニメページに切り替えます。
 
- Page Navigate
 Button のクリックで、ページからページに Navigate します。
 
 DialogBox
- DialogBox
 C# で DialogBox を表示します。
 
- DialogText 
 DialogBox からタイプした文字列を取得します。
 
- ModeLess Dialog
 ModeLess Dialog の基礎です。
 
 Windows Thread
- Thread Count
 Thread で起動したタスクでカウントします。
 
- Thread Class
 Class で Thread のメソッドを定義します。
 
- Thread Join
 Thread を配列で定義して、終了を待ち合せます。
 
- アニメーション&Thread
 アニメーションしながら Thread で時刻を取得します。
 
- Thread Animation
 Thread でアニメーションします。
 
Sound
  
    - WAVE を演奏 
 SoundPlayer で WAVE を演奏します。
 
- MIDI を演奏
 MCI(Media Control Interface)で MIDI を演奏します。
 
- MP3 を演奏
 MediaPlayer で MP3 を演奏します。
 
C# Network Program
  
    - Web ページをダウンロード
 C# で URL に接続して Web ページを TEXT 形式でダウンロードします。
 
- Web ページを TEXT 形式で表示
 C# で URL に接続して Web ページを TEXT 形式で TextBox に表示します。
 
- FTP UP_Load
 FTP を使って Web Page を UP_Load します。
 
- Server と Client で通信
 C# で TCP(Transmission Control Protocol) Server に Client から接続します。
 
- 現在時刻を知らせる
 C# で Server を常駐させて、現在時刻を Client に知らせます。
 
- タイマ割り込みで、接続要求をセンスする
 C# でタイマ割り込みを使って Client からの接続要求をセンスします。
 
- スレッドで Message を取得する
 アニメーションしながらスレッドで Message を取得します。
 
- IPアドレスを指定して送信/受信
 IPアドレスを指定してメッセージを相互に送信/受信します。
 
- スレッドでメッセージを受信
 スレッドを使ったメッセージの受信と、IPアドレスを指定したメッセージの送信です。
 
C# その他
  
    - Command Line
 Command Line で指定されたパラメータを受け取ります。
 
- アプリケーションを起動する
 C# から他のアプリケーションを起動します。
 ファイルを関連付けられたアプリケーションから開きます。
 
- ホームページを開く
 ボタンのクリックで URL を参照してホームページを開きます。
 
- Clipboard Text
 C# で Clipboard を使って、文字列を Copy&Paste します。
 
- Clipboard Image
 C# で Clipboard を使って、イメージを Copy&Paste します。
 
- Clipboard Files
 C# で Clipboard を使って、ファイルリストを Copy&Paste します。
 Windows Explorer と相互に Copy&Paste することが出来ます。
 
- Clip Text&Image
 Clipboard に文字列とイメージを一緒に格納します。
 
- Drag&Drop
 ListBox を使った Drag&Drop の基礎です。
 
- Drag&Drop View
 ListView には Drag&Drop 専用の機能が備わっています。
 
- エクスプローラと Drag&Drop
 Windows Explorer と Drag&Drop します。
 
- 「ちらつき」を無くす-1
 画像を切り替えてアニメーションしたときの、チラツキを無くす方法です。
 
- 「ちらつき」を無くす-2
 画像を切り替えてアニメーションしたときの、チラツキを無くす方法です。
 
- Double Buffer で描画する
 Double Buffer を使って「ちらつき」を無くしてアニメーションします。
 
- Special Folder
 Windows の特殊フォルダーを調べます。
 
- Draw で書いたイメージをファイルに出力
 BMP 画像領域にカラーで文字を書き、gif 形式でファイルに書き出します。
 
- Form(ウインドウ) を直接生成する
 Form Object Class を直接生成してウインドウを表示します。
 
- Main() のクラスに Form を継承する
 Main() メソッドが定義されているクラスに Form を継承してウインドウを表示します。
 
- Form を継承した Class を使う
 Form を継承した新しい Class を使ってウインドウを表示します。
 
 C# Game Program 入門
C# Game Program 入門
三山くずしゲーム
  - 石の画像を描画
 ゲームに使う石の画像を描画します。
 
- クリック座標
 マウスがクリックされた座標から、山と石を計算します。
 
- Alpha 版
 三山くずしゲームの Alpha 版です。
 
 カードゲームに挑戦
- カードを描画 
 格子状にカードを並べた画像から Sprite を切り分けて描画します。
 
- カードをシャッフル
 カードをシャッフルして、並べて描画します。
 
- カードを反転
 カードを重ねたり、反転して描画します。
 
 シューティングゲームに挑戦
- キーをセンス 
 リアルタイムにキーをセンスして画像を動かします。
 
- 背景のスクロール
 ゲームの背景画像をスクロールします。
 
- 弾丸を発射
 Space キーで弾丸を発射します。
 
- 弾丸を一括管理
 シューティングゲームで飛び交う弾丸を一括管理します。
 
- アニメーションクラス
 高精度タイマでアニメーションを行うクラスを作成します。
 
- 敵に向かって連射
 弾丸を敵に向かって連射します。
 
 ナンプレ(数属)ゲーム
- ナンプレ・ガイド
 Numberplace(ナンバープレイス)ゲームガイドです。
 
- GamePlay
 レベル(好み)に合わせてゲームをプレイします。
 
- Image
 ナンバープレイスで使用する Image 描画の基本です。
 
- Layout
 メニューを設定してゲーム画面を描画します。
 
- Menu
 NewGame メニューを実装して、プレイが出来るようにします。
 
- Alpha 版
 残りのメニューを実装して、α版の完成です。
 
- Alpha 版の実行
 α版をダウンロードして実行します。
 
- Numberplace
 Numberplace(ナンバープレイス)の完成です。
 
- 世界一数独
 世界一難しい数独の問題を解きます。
 
 オセロゲーム
- 挟んだ駒を裏返す
 マウスで「黒,白」の駒を置いて、挟んだ駒を裏返します。
 
- プラットホーム
 オセロゲームのプラットホームの完成です。
 
- Final 関数
 最も面白い Final 関数のテストです。
 
- コンピュータがプレイする
 コンピュータがプレイする関数を追加します。
 
- Base Project
 AIを組み込む前のベースプロジェクトです。
 
- Learnning
 コンピュータ同士で対戦した結果の学習準備です。
 
- Osero Game
 AIを組み込んだオセロゲームです。
 
 囲碁ソフト作成
- 碁盤に石を置く
 碁盤を表示して、石を置きます。
 
- クリックで石を置く
 マウスのクリックで石を置きます。
 
- 打ち上げと禁じ手
 石の打ち上げと禁じ手の判定です。
 
- SGF ファイルを入力
 SGF ファイルを入力して、出題図を表示します。
 
- 棋譜ツリー
 SGF ファイルの棋譜ツリーと CELL 構造体の説明です。
 
- 棋譜の再生
 SGF ファイルを入力して棋譜を再生します。
 
- 棋譜の保存
 ツリー構造に展開した棋譜を SGF ファイルに保存します。
 
- 棋譜の入力
 マウスのクリックで棋譜を入力します。
 
- 分岐の入力
 分岐手順を入力します。
 
- RadioButton
 主要な操作は RadioButton で制御します。
 
- Version 4
 SGF Version 4(FF[4]) に対応します。
 
- LB tag をプログラム
 SGF Version 4 に対応して LB tag をプログラムします。
 
- SGF Header
 SGF Header の編集をサポートします。
 
 三目並べゲーム
- ゲームの手を記録
 Cell を連鎖して三目並べゲームの手を記録します。
 
- 三目並べの学習機能
 C# で ArrayList を使って三目並べゲームを学習します。
 
- 三目並べの自動学習
 ArrayList を使って三目並べゲームの手を自動的に学習します。
 
- 三目並べゲーム
 Windows Mode で三目並べゲームを作成します。
 
- 三目並べゲーム-2
 ディープラーニングを使った三目並べゲームです。
 
- 三目並べゲーム-3
 ディープラーニングと常識的な手を打つ関数を組み合わせます。
 
 C# Application Program
C# Application Program
Screen Capture
  - Screen Capture
 Screen を Capture して画像ファイル(gif 形式)で保存します。
 
 Text Editor の基礎
- Text Editor の基礎
 C# で作成する Text Editor の基礎です。
 
- メニューをプログラム
 Text Editor のメニューをプログラムします。
 
- XML に保存
 Editor の設定情報を XML に Save, Load します。
 
- Command Line
 Command Line からファイル名を受け取ります。
 
 Text Editor を開発
- Text Editor の開発
 C# で実用的な Text Editor を開発します。
 
- ファイル入出力
 メニューの設定とファイルの入出力です。
 
- Contex Menu 
 Contex Menu を設定して編集メニューをコーディングします。
 
- XML に保存
 Editor の設定情報をXML に保存します。
 
- 検索機能
 「Search/Replace」メニューを設定します。
 
- Single File Editor
 キー操作を設定して Single File Editor の完成です。
 
- TabPage Change
 複数ファイルをオープンして Tab Page で切り替えます。
 
- FileClass
 FileClass を MultiEditor に対応して再編集します。
 
- Multi File Editor
 ファイル比較を設定します。
 
 Binary Viewer
 
- Binary Viewer のレイアウト
 Binary Viewer のウインドウをレイアウトします。
 
- TextBox に16進+文字で表示する
 このプログラムを自身を入力して TextBox に16進+文字で表示します。
 
- メニューを処理する
 メニューを処理するイベントハンドラを作成します。
 
- Edit Object Class
 Edit Object Class を使った Binary Viewer です。
 
- utf-16, utf-8
 utf-16, utf-8, Shift_JIS に対応します。
 
 Binary Editor
 utf-16, utf-8, Shift_JIS に対応します。
 
- Binary Editor のメニューを設定
 Binary Viewer をベースに Binary Editor を作成します。
 
- 入出力と描画の制御
 ブロックの入出力と描画の制御を行います。
 
- ページを修正する
 「修正(&U)メニュー」を実装します。
 
- ベータ版の完成です
 Binary Editor ベータ版の完成です。
 
 File Handler
- File Handler
 File Handler の原型プロジェクトを作成します。
 
- Layout
 File Handler のレイアウトを整えます。
 
- Handler Menu
 File Handler に Menu を設定します。
 Windows Explorer を起動してファイルを貼り付けることが出来ます。
 
- コピーを実装
 File Handler にコピー機能と削除機能を実装します。
 Windows Explorer と相互に Copy&Paste することが出来ます。
 
- 表示メニューを実装
 特殊フォルダや ListView の「表示切り替えメニュー」を実装します。
 
- Private Menu
 Contex Menu にプライベートメニューを追加します。
 ListView の名前変更(フォルダ名やファイル名の変更)を実装します。
 
- File Handler Version 1.0
 ListView のカラムをクリックすると昇順/降順に並べ替えます。
 一応これで Version 1.0 の完成です。
 
 Memo Application
 
- Memo Guide
 Memo2 アプリケーションのガイドです。
 
- Memo Read File
 Memo のデーターファイルを入力して ArrayList に格納します。
 
- Layout
 ツールボックスから Tool を貼り付けて Layout を整えます。
 
- Memo Tree View
 Memo アプリのデーターファイルを Tree View に登録します。
 
- RichTextBox
 TreeView で選択された node の Text Data を RichTextBox に表示します。
 
- Menu を登録
 Memo2 のメニューを登録します。
 
- 編集メニューを実装
 RichTextBox を編集する Edit Menu を実装します。
 
- Tree Menu を実装
 TreeView を操作する Tree Menu を実装します。
 
- File Menu を実装
 ファイルを操作する File Menu を実装します。
 
- Search Menu を実装
 TEXT を検索する Search Menu を実装します。
 
- ToolStrip を実装
 ToolStrip に Menu を実装します。
 Function Key に Text 編集を実装します。
 RichTextBox でダブルクリックを検出します。
 
- User Menu を実装
 フォントやパスワードを設定する User Menu を実装します。
 
- Memo2 α版
 Memo2 α版を作成します。
 
- Memo2 β版
 Memo2 β版を作成します。
 
- Dialog Input
 Dialog Box から Text(検索キー, 置換文字列) を入力します。
 
 画像認識
画像認識
画像認識 C# API
  - Image Guid
 C#で画像解析を行うために必要な知識です。
 
- Face Image Size
 顔の画像をサイズを整えて保存します。
 
- Color ⇒ Grayscale
 カラー画像をグレースケールに変換します。
 
- Color ⇒ 二値画像
 カラー画像を二値画像に変換します。
 
- Delete Color
 カラー画像から選択された色(背景色など)を削除します。
 
- Select Color
 カラー画像から選択された色を抽出します。
 
- Color ⇒ エッジ画像
 ピクセルの濃淡の違いを検出して、エッジ画像を作成します。
 
- Line をピックアップ
 エッジを検出して作成した二値画像から Line をピックアップします。
 
 画像認識 Win32 API
- BitBlt
 Win32 API の BitBlt() 関数を使って描画します。
 
- GetDIBits
 Win32 API の GetDIBits でピクセルデータを取得します。
 
- Win32 3原色
 Win32 API を使って、3原色を個々に設定して描画します。
 
- W32 Color ⇒ Gray
 Win32 API を使ってグレースケールに変換します。
 
- W32 Color ⇒ 二値画像
 Win32 API を使って二値画像に変換します。
 
- 画像のエッジを検出
 Win32 API で、ピクセルの濃淡の違いを検出してエッジ画像を作成します。
 
- Mark Rect
 Win32 API で、顔の画像に Land Mark を検出する矩形を重ねます。
 
- Land Mark
 Win32 API で、検索範囲を矩形で設定して Land Mark を検出します。
 
- 顔画像の識別
 Win32 API で、Land Mark を使って顔の画像を識別します。
 
- Face
 Store App(UWP) で静止画から顔を見つけます。
 
 
C#ページ検索抜粋
   超初心者のプログラム入門(C#)
超初心者のプログラム入門(C#)
   超初心者のプログラム入門(C/C++)
超初心者のプログラム入門(C/C++)