Text Editor の基礎
C# で作成する Text Editor の基礎です。
前田稔(Maeda Minoru)の超初心者のプログラム入門


開発の経緯
- 従来使われていた Windows System の文字コードは MultiByte(ANSI) ですが、最近では Unicode が主流になってきました。
古い MultiByte の Editor は使えなくなり Unicode の Text Editor が必要になりました。
優秀な Editor では、文字コードを意識すること無く編集できるのですが、逆にプログラムを作成する上では文字コードを知らなければなりません。
そこで文字コードの違いをはっきりと掌握できる Text Editor を開発することにしました。
- 昔から「Text Editor が開発できれば一人前のプログラマ」だと言われていましたが、最近では TextBox に備わっている機能を使えば比較的簡単です。
TextBox よりも RichTextBox の方が機能も高く Editor の開発に向いています。
所が TextBox には自動的に ContextMenu(右クリックメニュー)が設定されるのですが RichTextBox には設定されないようです。
念のために Windwos7&.NET 2005 でテストしたのですが同様の結果でした。
そこで今回は TextBox を使って簡単な Text Editor を開発することにしました。
RichTextBox の説明は C# RichTextBox を参照して下さい。
- Visual Studio 2013 Preview のテストも兼ねて、次の環境で自動生成を使って開発します。
・Windows8.1 評価版
・Microsoft Visual Studio Professional 2013 Preview - 日本語
- Visual Studio のショートカットをダブルクリックして起動します。
メニューから[ファイル/新規作成/プロジェクト]を選択します。
テンプレートから[Visual C#/Windows/Windowsフォームアプリケーション]を選択します。
名前は規定値で[WindowsFormsApplication1]になっていますが [TextEditor] に変更します。
場所はプロジェクトを格納するフォルダ(C:\TMP など)を指定して下さい。
「ソリューションのディレクトリの作成」チェックは外します。
- [デザイン] を表示してウインドウ(Form)のサイズを 1000*600 ぐらいに広げて下さい。
次にツールボックスから [MenuStrip] を貼り付けます。
MenuStrip に次のメニューを設定して下さい。
今回はメニューの表示だけで、メソッドの作成は後ほど行います。
MenuStrip の設定は ToolBox からメニューを貼り付ける を参照して下さい。
グループ | メニュー | メソッド |
File(&F) | UniOpen(&O) | UniOpen メソッド |
| JisOpen(&R) | JisOpen メソッド |
| OverWrite(&V) | Save メソッド |
| UniSave(&S) | UniSave メソッド |
| JisSave(&W) | JisSave メソッド |
| Exit(&X) | Exit メソッド |
View(&V) | Setfont(&F) | SetFont メソッド |
Help(&H) | Version(&A) | HelpAbout メソッド |
- Form 全体に TextBox を配置します。
TextBox のプロパティを以下のように設定して下さい。
- Multiline を True に設定する。
- ScrollBars で Both を選択する。
- AcceptsReturn を True に設定する。
- AcceptsTab を True に設定する。
- Anchor に Top,Left を設定する。
- Dock に "Fill" とタイプする。
AcceptsReturn と AcceptsTab は、Returnキーと Tabキーを TextBox で使えるようにします。
Anchor と Dock は、ウインドウの拡大/縮小時に、サイズを合わせるためです。
TextBox の貼り付けは TextBox と Button を貼り付ける を参照して下さい。
- Form のレイアウト情報は Form1.Designer.cs の InitializeComponent() に書き出されます。
自動生成では、何もしなくても Form の Constructor から呼び出されます。
public Form1()
{
InitializeComponent();
}
|
- プログラムを実行して、メニューと TextBox の表示を確認して下さい。
TextBox にテストデータをタイプしてみて下さい。
文字列を選択してマウスを右クリックすると ContextMenu が表示されます。
コピーやペーストが出来ることを確かめて下さい。
実用的な TextEditor は Text Editor の開発 を参照して下さい。
C++ Windows でも簡単な Edit Control で Text Editor を作る を掲載しています。

[Next Chapter ↓] メニューをプログラム
超初心者のプログラム入門(C# Frame Work)

※・