- - PR -
【Web/VB】カスタムコントロールでIMEの設定について
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2003-04-11 10:07
おはようございます。
VB.NETでWebアプリを構築しています。 イントラ内の使用ということで対象ブラウザをIE5.5以上とすることで IMEの設定をさせることを可能としたいということで、 テキストボックスから派生したカスタムコントロールにonFocus時にime="active"等 (IMEのモードはEnumを使用してプロパティより選択)を設定できるようにしたのですが、 画面に初期表示されたとき onloadないの処理で一度それらのテキスト全てにFocusを設定しないと有効になりません。 (マウスでその項目をクリックすると有効になりますがTabで移動しても有効にならない) onload内でFocusを設定しなくてもよい方法などご存知のかたがいらっしゃいましたら お教えください。 よろしくお願いします。 |
|
投稿日時: 2003-04-11 20:20
onLoad内の処理とは、クライアント側のOnLoadのことでしょうか。
JavaScriptで、各コントロールのimeを設定されているのでしょうか。 IEと限定されているのでしたら、生成されるHTMLを <input type="text" style="ime-mode:active"> のような出力がされるように調整されるだけでよいと思います。 |
|
投稿日時: 2003-04-11 21:01
いのつちさん返信ありがとうざいます。
おっしゃるとおりなのですが、 開発者がJavascriptをあまりわからないということで カスタムコントロールを作成した次第です。 カスタムコントロールにてスタイル属性に ime-mode:activeと生成させたいのですが、 生成方法がわからず、onFocusにthis styleとして imeの設定が出力されるようにしています。 style属性にime-modeを追加する方法があれば おしえていただけると助かります。 |
|
投稿日時: 2003-04-11 23:34
WebControlでスタイルの属性を追加するには、
コントロールのStyleコレクションにキーと値をつけるだけでOKです。 テキストボックスに追加。 TextBox1.Style("ime-mode") = "active" カスタムコントロールだとこんな感じでしょうか。 すみません。VB.NETは触っていないので,自信がありません。 C#のサンプルになっちゃいますが、書き方がちょっと違うだけのはず。。 public enum IMEMode { active,auto,inactive,disabled } /// <summary> /// ImeTextBox カスタムコントロール。 /// IMEModeプロパティをテキストボックスを継承して追加 /// </summary> [DefaultProperty("Text"), ToolboxData("<{0}:ImeTextBox runat=server></{0}:ImeTextBox>")] public class ImeTextBox : System.Web.UI.WebControls.TextBox { private IMEMode mode; /// IMEMode プロパティ [Bindable(true),Category("Appearance"),DefaultValue(IMEMode.auto)] public IMEMode ImeMode{get{return mode;}set{mode = value;}} /// <summary> /// このコントロールをパラメータに指定された出力に書き出します。 /// </summary> /// <param name="output"> 書き出す HTML ライタ </param> protected override void Render(HtmlTextWriter output) { //プロパティの値をスタイルに追加 output.AddStyleAttribute("ime-mode",mode.ToString()); base.Render(output); } } |
|
投稿日時: 2003-04-14 10:11
いのつちさん
かさねがさねありがとうございます。 教えていただいた、ロジックで 目的を実現できました。 ありがとうございました。 また、よろしくお願いします。 |
1
