このクラスは、HotKeyPressedというイベントを外部に提供する。そこで、単にWithEvents変数を使うか、次のように、イベントハンドラを明示的にセットアップしてほしい。
' VB.NET Dim hk As New GlobalHotKey(Keys.A, _ Keys.ControlKey) AddHandler hk.HotKeyPressed, _ AddressOf HotKeyHandler // C# GlobalHotKey hk = new GlobalHotKey( Keys.A, Keys.ControlKey); hk.HotKeyPressed += new EventHandler(HotKeyHandler); |
GlobalHotKeyクラスは、.Net2TheMaxウェブサイトから、完全なVB.NETおよびC#のコードとしてダウンロードできる(前述のコラム「Additional 2TheMax Downloads」参照)。
最後にひとつ注意点。
これらのルーチンは、アンマネージドコードを呼び出している。そのため、完全には信頼されない.NETアプリケーション――とくにHTTPによって起動されるスマートクライアントアプリケーション――においては、利用することができない。――Francesco Balena
データ入力用のWebフォームが、幾つかのテキストボックスを含んでいる時、入力フォーカスを担うテキストボックスをハイライト表示すると、ユーザーの体験を著しく改善できる場合がある。
このテクニックは、タブオーダーの順序が明白でないときには、特に有効だ。
たとえばユーザーは、テキストボックスの複数の列に戸惑っているかもしれず、水平や垂直方向の順序が何なのかと思っていることも考えられる。
数行のクライアントサイドのJavaScriptのコードを加えれば、簡単にアクティブなテキストボックスの背景色や前景色を変えられる。したがって、そのフィールドがユーザーの入力を受け付けているということを直ちにフィードバックできるわけだ。
DHTMLは、コントロールのスタイルのプロパティやサブプロパティを設定することによって、HTML要素のスタイル(フォント、カラー、位置)を変更することを可能とする。
次のHTMLコードは、クライアントサイドのイベントであるonfocusをハンドリングすることで背景色と前景色を変更し、また、onblurイベントをハンドリングすることで、コントロールがフォーカスを失ったときに、元の色に戻すという、テキストボックスのレンダリングを行うものだ。
<input name="txtFirstName" type="text" id="txtFirstName" onfocus= "this.style.backgroundColor='Yellow'; this.style.color = 'Blue';" onblur="this.style.backgroundColor= 'Window'; this.style.color='WindowText';" /> |
手作業でハードコーディングする代わりに、ASP.NETのすべてのサーバーサイドコントロールに対して、ハイライト表示をサポートする機能を動的に加えることもできる。
WebControlクラスから継承するすべてのコントロールは、ひとつ以上の「属性名=値」というペアを追加できるAttributesコレクションを備えている。
これらのペアは、レンダリング時に、コントロールによって生成される標準的なHTMLコードのなかに埋め込まれる。
次ページ、リスト3に示すVB.NETやC#のメソッドは、背景色や前景色を引数に指定された色に変更するJavaScriptのコードを動的に構築するというものだ。
© Copyright 2001-2005 Fawcette Technical Publications