夕暮ログ

C#やJavascript、最近はAndroidなんかも好きなtinqのブログ。「夕暮れログ」

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

実際にStringビジュアライザを作る!

前回紹介した関数を使って、実際に使えるようなものを作ってみます。

string型の、テキストビジュアライザを作ってみます。
少しパワーアップして、書き換えもできるようにしてみます。
書き換えも難しくはありません。
しかし、標準にある変数名を表示するのは不可能なようです。

(1)下準備

先に 前の記事 を見て下準備を行います。ちなみに、クラス名などはわかりやすいクラス名(TextVisualizerやStringVisualizerなど)にしておくことをお勧めします。

(2)フォームの追加

新しいフォームを追加します。このとき、間違えてテスト用プロジェクトに追加してしまわないようにしましょう。

(3)フォームの設定

  1. フォームの「MinimizeBox」「ShowIcon」「ShowInTaskbar」をFalseにします。お好みでテキストも変更します。
  2. テキストボックスをつけます。「Multiline」をTrueにして上のほうにいっぱいに広げ、「Anchor」にすべての方向を設定します。
  3. チェックボックスをつけます。テキストは「右端で折り返す」などにします。
  4. ボタンを2つつけます。テキストは「閉じる」と「変更を適用して閉じる」にしましょう。
このようになるはずです。

(4)コードを書く

続いて、コードを書いていきます。
3つをそれぞれのイベントに設定してください。
//[閉じる]
private void button1_Click(object sender, EventArgs e)
{
    this.Close();
}

//[変更を適用して閉じる]
private void button2_Click(object sender, EventArgs e)
{
    this.DialogResult = DialogResult.Yes;
    this.Close();
}

//[右端で折り返す]
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    textBox1.WordWrap = checkBox1.Checked;
}

//テキストボックスのテキストを外部に公開する
public string DebuggerText {
    get { return textBox1.Text ; }
    set { textBox1.Text = value; }
}
また、このフォームは外部に公開する必要はありません。
無駄なクラスを公開することはミスにつながりますから、このフォームのアクセス装飾子は「private」か「internal」に変更しておきます。 internalは同じアセンブリー内=このDLLの中だけから触ることができます。

(5)呼び出すコードを書く

以下のコードをデバッガビジュアライザのコードに書いてください。
protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
{
    //フォームを作成
    StringDebugger sd = new StringDebugger();
    //テキストボックスにセット
    sd.DebuggerText = objectProvider.GetObject().ToString();
    //ダイアログとして表示。[変更を適用して閉じる]が押されるとDialogResult.Yesになる
    if (windowService.ShowDialog(sd) == DialogResult.Yes)
    {
        //文字を差し替える
        objectProvider.ReplaceObject(sd.DebuggerText);
    }
}
そして、以下のコードをusingの下(名前空間の前)に書きます。
[デバッガビジュアライザのクラス名]は、あなたの環境に合わせて置き換えてください。
[assembly: System.Diagnostics.DebuggerVisualizer(
typeof( デバッガビジュアライザのクラス名 ),
typeof(VisualizerObjectSource),
Target = typeof(string),
Description = "テキスト ビジュアライザEx")]
これで完成です!
結構簡単でした。
では、前の記事にあるようにDLLをコピーしてください。
(自動コピーの設定をしてあればいりません。)

実際に実行してみます。 [F5]でデバッグにして、ブレークポイントでとめます。
文字の変数にマウスを乗せて出てきたタグの虫眼鏡メニュー。

「テキスト ビジュアライザEx」が出現しました。
クリックしてみます。無事表示されました。

テキストを書き換えて、「変更を適用して閉じる」を押します。

無事変更されていますね。 私は、これをさらに拡張していろいろな関数のテストから、ウェブブラウザでの確認、正規表現まで確認できるビジュアライザを作りました。
公開しようかとも思ったのですが、正直、クォリティが、ね・・・
次回、私が作った画像用のビジュアライザを公開しようと思います・・・
その前に、もっと簡単なカラービジュアライザを公開しました
今回紹介した、ビジュアライザをソースつきで公開しました。
「ソフトウェア & ライブラリ」 - SkyForMe から無料でダウンロードできます。
関連記事

コメント

ここをクリックしてコメントを投稿

非公開コメント

トラックバック

http://tinqwill.blog59.fc2.com/tb.php/32-e25492cb

« next  ホーム  prev »

プロフィール

tinq tinq(もしくはTinqWill)

Sky  For   Every 改装予定

プログラミングお勉強中の高校生。月一くらいは更新したい

最新記事

カテゴリ

月別アーカイブ

検索フォーム

最新コメント

リンク

最新トラックバック

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。