- PR -

IMEについての質問

1
投稿者投稿内容
HANABI
会議室デビュー日: 2002/07/03
投稿数: 12
投稿日時: 2002-07-05 18:57
初心者のHANABIです。
VB.NETでWebの開発を行っています。

質問なのですが
TextBoxにIMEの設定をして入力モードを指定するということはできるのでしょうか?
VB6の時にはTextBoxのプロパティの「IME Mode」を指定すればできたのに…
まったくもってやり方がわからないです。

申し訳ありませんがどなたかよき知恵を授けてください。
宜しくお願いします。
うりゅう
大ベテラン
会議室デビュー日: 2002/06/15
投稿数: 202
お住まい・勤務地: Hiroshima
投稿日時: 2002-07-05 21:06
>TextBoxにIMEの設定をして入力モードを指定するということはできるのでしょうか?

Windowsフォームにはプロパティがあるようですが、Webフォームには標準のプロパティで存在しないようです。

ですので、Attributesを使って、JavaScriptをテキストボックスに割り当てることで実現します。

以下のような構文になります。

NAMETX.Attributes("onFocus") = "style.imeMode = 'active'"
モードに関しては、autoが通常状態で、activeが強制的にON、inactiveが強制的にOFFです。

ページロードイベント内などにおくのが一般的でしょうか。
biac
大ベテラン
会議室デビュー日: 2001/10/22
投稿数: 106
投稿日時: 2002-07-06 01:45
引用:
NAMETX.Attributes("onFocus") = "style.imeMode = 'active'"
モードに関しては、autoが通常状態で、activeが強制的にON、inactiveが強制的にOFFです。


だから。

どこの? どういうバージョンの? CSS ですか?

# 有効範囲を知らずに、「これで上手くいく」と思い込んだら、後で泣くだけですよ。

引用:
ページロードイベント内などにおくのが一般的でしょうか。


TextBox Web サーバコントロール内に onfocus 属性として書くだけでは?
FOX
ベテラン
会議室デビュー日: 2002/04/08
投稿数: 63
お住まい・勤務地: いなか
投稿日時: 2002-07-06 12:41
TextBoxのStyleプロパティにCSSの設定を行うという方法もあります。

IME-MODE: active;

を足すとわざわざイベントをフックしなくてもそのフィールドに移動した時点でIMEモードを
設定してくれます。

あと下の文の補足

NAMETX.Attributes("onFocus") = "style.imeMode = 'active'"

これはおそらく

Private Sub Page_Load(
ByVal sender As System.Object,
ByVal e As System.EventArgs
) Handles MyBase.Load
{
NAMETX.Attributes("onFocus") = "style.imeMode = 'active'"
  :
}

上のように"Page_Load"イベントハンドラなどに記述するものだと思います。
やっている内容としては、
ASPのエンジンがASPXのタグからHTMLに変換するときにコントロールのHTMLタグの属性に追加するというものです。

上の例)
<input id="NAMETX" name="NAMETX" type="text" onFoucus="style.imeMode = 'active'"/>

やっていることは同じでCSSの属性をJScriptにて制御するかCSSでそのまま書くかの差です。

ただし、このCSSでの制御ではIMEモードの半角カナ,全角英数などの制御まではできません。
あくまでIMEのON/OFFを制御するものです。

もしCSS以外でIMEの制御ができる方法をご存知の方がいらっしゃいましたらご教授ください。
biac
大ベテラン
会議室デビュー日: 2001/10/22
投稿数: 106
投稿日時: 2002-07-06 16:15
引用:
TextBoxのStyleプロパティにCSSの設定を行うという方法もあります。

IME-MODE: active;


だから。

どこの? どういうバージョンの? CSS ですか?



# あなたの世界は、Microsoft しか存在しない理想郷なのですね。 :-p
http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/imemode.asp
# 適用範囲を言わないなら、「TextBox Web サーバコントロールに、istyle 属性として "1" を指定すれば OK です」という回答だってあり、です。
うりゅう
大ベテラン
会議室デビュー日: 2002/06/15
投稿数: 202
お住まい・勤務地: Hiroshima
投稿日時: 2002-07-07 01:42
>だから。
>どこの? どういうバージョンの? CSS ですか?

では、無知蒙昧な私(笑)に、模範的な回答を教えていただけたら、参考になるのですが


ぜひ、お願いします。
_________________
--------------------------------------
ネットビルド 小田原貴樹
odahara@netbuiuld.jp
--------------------------------------
FOX
ベテラン
会議室デビュー日: 2002/04/08
投稿数: 63
お住まい・勤務地: いなか
投稿日時: 2002-07-07 01:51

IME-MODE: active

これはMicrosoft独自仕様のようです。
IE5以降で動作します。
ですのでIE4以前とかネスケ,オペラでは動作しません。
CSS1,CSS2の標準などを眺めてみましたが当然見当たりませんでした。
あと"IME"とは"Input Method Editor"の略だそうです。

IME ≠ MS-IME

ですのでIE5 + ATOKでも動作しました。

追伸
私はMicrosoftはあまり好きではないです。
Linux + monoでASP.NETのようなことができれはと思うのですが…。

情報
・CSS関係
・Cascading Style Sheets, level 1
- http://www.w3.org/TR/CSS1
・Cascading Style Sheets, level 2
- http://www.w3.org/TR/CSS2
・HTMLクイックリファレンス
- http://www.htmq.com/
・mono
・http://www.go-mono.com/
1

スキルアップ/キャリアアップ(JOB@IT)