VB のたまご

作成日: 2016/02/11, 更新日: 2016/02/11


Azukiエディタコントロール用のインテリセンスを作ってみた

  •  YAMAMOTO Suguru さんが作られた Azuki エディタコントロール向けに、インテリセンス機能を付け加えてみました。
  • この記事は、別記事でRichTextBox 用のインテリセンスを作ってみたという記事を書いたのですが、それの Azuki バージョンです。

  •  Azuki の詳細(ライセンスとかいろいろ)は、本家サイトを参照していただくとして、Azuki は dll 以外にソースコードも公開されています。 言語は C# です。自作エディタに挑戦しようと思っている方は、ソースコードを眺めるだけでも勉強になると思いますよ。

  •  公開 dll は、.NET Framework 2.0 用なのですが、 .NET Framework 4.5 用の WinForms アプリケーションで使えることを確認しました。 参照設定からの参照追加もできますし、私は画面デザインで操作できるように、Visual Studio のツールボックスに、dll をポイっと放り込んで、 そこで Azuki コントロールを選んで画面に貼り付けました。ビルドして実行、操作できることも確認できました。 ただし、全機能の動作確認はしていません。

  • スポンサーリンク


ダウンロード

  • サンプルコードを上げておきます。
  •  無料ダウンロードする(IntellisenseTest_Azuki.zip, 400 KB)

  • サンプルコードを実行するには、.NET Framework 4.5 以降が必要です。 ただ、ターゲットフレームワークのバージョンを下げれば、2.0 でも動くかもしれません(未検証)。

機能紹介

  •  簡単なインテリセンスです。入力時、該当しそうな候補があれば自動表示されます。インテリセンス表示時、フォーカスを奪うことはしませんので、 引き続き入力を継続することができます。インテリセンス表示中は、上下キーで候補の選択切り替え、Tab キーで決定、Escape キーでインテリセンスをキャンセルできます (つまり、この間、AzukiControl 内の該当キーの操作が無効になります)。また、マウスで項目をダブルクリックしても候補を決定することができます。 決定後の候補は、入力時の文字列に補完されます(内部的には、入力時の文字列をいったん削除、その位置に候補値を挿入しています)。

  •  候補となる一覧データは、画面ロード時にセットします。

  • イメージ
  •  サンプル

実装

  •  IntellisenseTest_Azuki.zip を解凍して、スタートアッププロジェクトを切り替えて確認します。 画面の組み合わせで作ったバージョンと、インテリセンスを AzukiControl 内に組み込んで作った、拡張コントロールを利用するバージョンの2パターンがあります。

  •  仕様や仕組みは、RichTextBox 用のインテリセンスを作ってみたとまったく同じです。 そのため、これ以降の説明はこちらの記事をご覧ください。違いはエディタコントロールの操作方法( RichTextBox とか AzukiControl の操作仕様)です。

  • スポンサーリンク