本項では、InputMan for ASP.NETの制限事項やご利用上の注意点について解説します。制限事項、不具合に関する最新情報につきましては、弊社のWebサイトの
ナレッジベースを参照してください。
Visual Studioのデザイン画面では、以下の制限事項があります。
- デザイン画面ではコントロールの描画スタイルや、スクロールバー、ドロップダウンボタン等がクラシックスタイルで表示されます。実行時にはクライアント環境に伴うスタイルで表示されます。
- デザイン画面ではCSS(カスケードスタイルシート)の設定が反映されない場合があります。実行時には正常に反映されます。
- コントロール(Visual Studio 標準コントロールを含む)の[プロパティ]ウィンドウのCssClassプロパティのリストや、[スタイルの管理]ウィンドウに、Webフォーム上にあるInputMan for ASP.NETコントロールが使用しているCSSのIDが追加されます。また、このIDを使用しコントロールのCSSに適用するとエラーが発生する場合があります。このようなInputMan for ASP.NET固有のCSSは使用しないようご注意ください。
なお、InputMan for ASP.NETのCSSのID名は「コントロールID_」から始まります。
- 複数行に設定したテキストコントロールのScrollBarプロパティをNoneやHorizontalに設定しても、垂直方向のスクロールバーが表示されてしまいます。実行時には正常に表示されます。
- コンボおよびリストコントロールで、ヘッダに表示されるテキストがヘッダ幅を超える場合、省略文字(…)が表示されません。実行時には正常に表示されます。
- UpdatePanelおよびListViewコントロールの各テンプレートに配置したコントロールのサブプロパティ(コントロールのプロパティが参照するオブジェクトのプロパティ)をデザイン画面で設定してもaspxファイルに出力されず、設定が反映されません。サブプロパティの設定後に、コントロールの任意のプロパティを設定することで回避できます。
次の手順を参考にしてください。マスクコントロールの書式設定(Formatプロパティが参照するMaskFormatオブジェクトのプロパティ設定)を例とします。
- スマートタグの「書式を設定...」またはプロパティウィンドウのFormatプロパティから、マスク書式の設定エディタを起動します。
- 書式に「〒 \D{3}-\D{4}」と設定し、〈OK〉ボタンを押下します。
- プロパティウィンドウでEnabledプロパティをFalseに設定します。
- プロパティウィンドウでEnabledプロパティをTrueに戻します。
- Visual Studio Expressのみがインストールされた環境では、デザイン時に必要なMicrosoft.mshtml.dllが存在しなく、そのためデザイン画面で製品が正しく動作しない場合があります。Microsoft.mshtml.dllは、Microsoft Primary Interoperability Assembliesに含まれておりますので、
こちらから入手の上、インストールしてください。
InputMan for ASP.NETでは、複数のブラウザをサポートしますが、ブラウザの仕様やバージョンごとの動作の違いにより、以下の制限事項があります。
Microsoft Edgeでの制限事項
- マスク、日付時刻、日付、時刻、コンボ、数値コントロールでClipContentプロパティをExcludeLiteralに設定しても動作しません。
- コンテキストメニューから貼り付け、切り取り、コピー等の動作を行うとき、クリップボードは使用されません。本製品のコントロールのデータを別のコントロールやアプリケーションにコピーしたり、別のコントロールやアプリケーションのデータを本製品のコントロールにコピーすることはできません。
- テキストコントロールで省略文字を表示しているとき、コントロール末尾に空白が表示されます。
- テキストコントロールでパスワード入力を行うときに表示されるパスワード表示ボタンの背景色が透過されません。
- InputManコントロールを隙間なく横並びに配置しても、印刷時にはコントロール間に半角スペースほどの隙間が空いてしまいます。この現象を回避するにはこちらを参照してください。
Microsoft Edge(Chromiumベース)での制限事項
- 上記の「Microsoft Edgeでの制限事項」には該当しません。
- 「Chromeでの制限事項」に該当します。
Chromeでの制限事項
- Chromeでコントロールを長押しすると、Chromeに搭載されるメニューバーが表示されます。このため、InputManが提供するタッチツールバーは表示されません。

- 上記のChromeのメニューバーで「...」をタップすると表示されるコンテキストメニューには、ContextMenuScaleプロパティによる拡大率が適用されません。
- 各コントロールのImeModeプロパティの設定はサポートされません。
- マスク、日付時刻、日付、時刻、コンボ、数値コントロールでClipContentプロパティをExcludeLiteralに設定しても動作しません。
- コンテキストメニューから貼り付け、切り取り、コピー等の動作を行うとき、クリップボードは使用されません。InputManコントロールのデータを別のコントロールやアプリケーションにコピーしたり、別のコントロールやアプリケーションのデータをInputManコントロールにコピーすることはできません。
- コントロールのBackColorプロパティが空の値(既定値)で、コントロールが配置されているbodyや、td、またはPanelといったコンテナの背景色が設定されているとき、ドロップダウンやスピンボタンの背景色はコンテナの背景色が適用されます。回避するには、コントロールのBackColorプロパティに 明示的にWhite等の色を設定します。
iPad(Safari)での制限事項
- 日付時刻や数値コントロールのドロップダウンオブジェクトにドロップダウン数値パッドが設定されているとき、ドロップダウンボタンをタップして数値パッドが表示されても、iPadのオンスクリーンキーボードが非表示になりません。
- SetFocusクライアント側メソッドは動作しません。
- 各コントロールのImeModeプロパティの設定はサポートされません。
- マスク、日付時刻、日付、時刻、コンボ、数値コントロールでClipContentプロパティをExcludeLiteralに設定しても動作しません。
- コンテキストメニューから貼り付け、切り取り、コピー等の動作を行うとき、クリップボードは使用されません。InputManコントロールのデータを別のコントロールやアプリケーションにコピーしたり、別のコントロールやアプリケーションのデータをInputManコントロールにコピーすることはできません。
- テキスト、コンボやリストコントロールのScrollBarModeプロパティをFixedに設定しても動作しません。常にAutomaticの動作をします。
- コントロールのBorderStyleプロパティがSolid以外かつBorderWidthプロパティが3以上の場合、境界線が正しく描画されません。
- 複数行モードのテキストコントロールで、ドロップダウンエディットのキャレットがコントロールの外に表示されます。
- iPadOS 13/iOS 9以上に搭載されるキーボードのアンドゥ、リドゥ機能は正しく動作しません。
- ハードウェアキーボードには、以下の制限があります。
- 矢印キー、ファンクションキーおよびCapsキーの動作はサポートされません。
- Alt(option)キーを押下しながらのキー入力は正しく動作しません。
- 入力系コントロール以外のコントロール(電卓、カレンダー、リストなど)では、キーによる操作が無効となります。
- テキストコントロールにおいて、AcceptsTabプロパティの設定に関わらず、タブ文字の入力はできません。
ここでは、コントロールごとの制限事項について解説します。
全般
- マルチタッチ機能はWindows 8以降でサポートされます。
- div、tdなどのCSS設定が、InputMan for ASP.NETのコントロールに反映されてしまう場合があります。これは、InputMan for ASP.NETのコントロールが、内部でdiv、tdなどのHTMLタグで構成されているための制限です。次のようにClass属性を使用し、スタイルを適用したい要素を指定することで回避できます。
<style type="test/css">
td.Mytd {border:dotted 1px #ff0000;}
</style>
<table>
<tr>
<td class="Mytd">
- CSSの位置設定なしで、Visual Studio標準のコントロールとInputMan for ASP.NETのコントロールを並べて表示すると、水平方向の位置がずれて表示されてしまいます。これは、内部で使用しているHTMLタグの組み合わせで生じるずれにより発生する問題です。次のようにTable内に配置することで回避することができます。
<table>
<tr>
<td><im_edit:GcTextBox id="GcTextBox1" runat="server" /></td>
<td><asp:dropdownlist id="DropDownList1" runat="server" /></td>
</tr>
</table>
- Internet Explorerの設定で「スクリプトのデバッグを使用しない」チェックボックスをオフにし、スクリプトデバッグが有効になっている場合、Visual Studioからデバッグ実行すると、ソリューションエクスプローラのスクリプトドキュメントに、「Anonymous code」および「eval code」という名前のファイルが表示されます。これは、InputMan for ASP.NETのコントロールで、実行時に動的に作成されるスクリプトです。
- headタグに埋め込みコードブロック(<% %>)の記述があると、CSSが正しく適用されなかったり、Javascriptエラーが発生したりする場合があります。埋め込みコードブロックの記述が必要な場合は、次のようにPlaceHolderを使用することで回避が可能です。
<asp:PlaceHolder runat="server">
<script type="text/javascript" src='<% =ResolveUrl("JScript.js") %>'></script>
</asp:PlaceHolder>
- Visual Studio 2012のPage Inspector機能はサポートしていません。
- InputMan for ASP.NETの各コントロールをページに追加すると、ASPXファイルには@Registerディレクティブが自動的に追加されます。以下は、テキストコントロールの例です。
<%@ Register assembly="GrapeCity.Web.Input.v100, Version=10.0.4000.2012, Culture=neutral, PublicKeyToken=c3bd7c1dccef5128" namespace="GrapeCity.Web.Input.IMEdit" tagprefix="im_edit" %>
ただし、なんらかのタイミングで次のような@Registerディレクティブが追加される場合があります。
<%@ Register assembly="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" namespace="System.Collections" tagprefix="cc1" >
<@ Register assembly="GrapeCity.Web.Input.v100, Version=10.0.4000.2012, Culture=neutral, PublicKeyToken=c3bd7c1dccef5128" namespace="GrapeCity.Web.Input.Core.ListBox" tagprefix="cc2" >
<@ Register assembly="GrapeCity.Web.Input.v100, Version=10.0.4000.2012, Culture=neutral, PublicKeyToken=c3bd7c1dccef5128" namespace="GrapeCity.Web.Input.Core" tagprefix="cc3" %>
ページ上で上記で定義されているタグプレフィックス"cc1"、"cc2"、"cc3"が使用されていない場合、これらの@Registerディレクティブは削除しても問題ありません。
- Windows 8以降でのタッチキーボード使用時、キーボードのレイアウトにより各コントロールのキーボード操作、ショートカットエクステンダが提供するショートカットキー操作が動作しない場合があります。
- Visual Studioからデバッグ実行を行うと、出力ウィンドウに「0x800a1391 - JavaScript 実行時エラー: ’oGcMask1IMControl’ は定義されていません。」というような例外メッセージが表示される場合があります。これは、コントロールの内部で実装しているJavascriptでの例外処理をVisual Studioがデバッグ情報として出力するもので、実行時の動作には影響はありません。
- Panelコントロール等のコンテナにInputManコントロールを配置している場合、Visibleプロパティなど、コンテナのサーバー側プロパティを使用して非表示に設定していると、ページロード時にInputManコントロールが正しく読み込まれません。 そのため、クライアント側でプロパティを変更しコンテナを表示したとき、InputManコントロールが正しく動作しない場合があります。
- タッチによるリサイズ操作はサポートされません。以下の機能が該当します。
- リストコントロールおよびコンボコントロールのドロップダウンリストでのカラムヘッダのリサイズ
- コンボコントロールのドロップダウンリスト、テキストコントロールのドロップダウンエディットのリサイズ
- ページでiframeが使用されているとき、日付時刻ピッカーの日付または時刻スクロール、およびカレンダーのスクロールのアニメーション動作に遅延が発生します。
- コントロールのCssClassプロパティにCSSを設定後、該当のCSSの内容を変更してもコントロールに変更内容が反映されません。CssClassプロパティの値を一度削除してから再設定することで反映されます。
jQuery使用時
jQuery APIに関して以下の制限事項があります。
- jQuery APIのCSSメソッドを使用する場合、以下のようにpositionプロパティを使用してコントロールの配置を設定しても、正しく動作しません。
$("#GcTextBox1").css("position", "relative");
$("#GcTextBox1").css("left", "200px");
$("#GcTextBox1").css("top", "300px");
この問題を回避するには、jQuery APIのCSSメソッドではなく、通常のCSS設定をご利用ください。
<style type="text/css">
.IMposition
{
position:relative;
left:200px;
top:300px;
}
</style>
<im_edit:GcTextBox ID="GcTextBox1" runat="server" CssClass="IMposition"
- jQuery APIのCSSメソッドを使用して次のように境界線を設定する場合、コントロールのドロップボタンあるいはスピンボタンが表示されているとボタンの周りに境界線が表示されません。
$("#GcDate1").css("border","1px solid #00ff00");
この問題を回避するには、jQuery APIのCSSメソッドではなく通常のCSS設定をご利用ください。
<style type="text/css">
.IMborder
{
border:1px solid #00ff00;
}
</style>
<im_date:GcDate ID="GcDate1" runat="server" CssClass="IMborder"
- ウォーターマークが設定されているとき、jQuery APIのCSSメソッドを使用して文字色を設定しても正しく適用されません。この場合はjQuery APIのCSSメソッドではなく、InputManの SetForeColorメソッドをご利用ください。
テキストコントロール
- ふりがなの出力先を設定している場合、[Enter]キーで確定前の入力文字を[Backspace]キーで削除しても、ふりがなとして出力されます。
- ふりがなの出力先を設定している場合、文字入力後、[Enter]キーで確定前に左右矢印キーや[Home]、[End]キーでキャレットの位置を移動すると、ふりがなが正しく表示されません。
- クライアント側のスクリプト処理速度により、入力時のタイプスピードが速いとふりがなが正しく表示されない場合があります。
- Windows 8以降でのタッチキーボード使用時に、文字変換を予測候補リストからタッチ操作により選択した場合、ふりがなが正しく表示されません。
- [Delete]や[Backspace]キーとほかのキーが同時に押下されると、文字の削除処理が正しく行われない場合があります。
- IE11エンタープライズモードでは、EnableAlphabetReadingMappingプロパティ(SP1で追加)は機能しません。
マスクコントロール
- 以下のように、全角円記号のみ入力を許可するよう設定した場合、キーボードから半角円記号を入力しても全角円記号に変換されません。
GcMask1.AutoConvert = True
GcMask1.Format.Pattern = "[¥]"
GcMask1.AutoConvert = true;
GcMask1.Format.Pattern = "[¥]";
日付時刻、日付、時刻コントロール
- ドロップダウンカレンダーのヘッダ部分をクリックしたときに表示される年月ポップアップに、日付コントロールのテキストエリア部分にあるキャレットが表示されてしまいます。
- NullあるいはEmptyEraに該当する値が入力されているとき、クライアント側でCurrentFieldプロパティの値が正しく取得できません。
数値コントロール
- 書式を設定した数値コントロールを動的に作成するとポストバック後に書式がデフォルト(####0.##)に戻ってしまいます。次のいずれかの方法で回避できます。
A) 作成したコントロールのEnableViewStateプロパティをFalseに設定します。
B) コントロールをページに追加したあとに、書式設定プロパティを設定します。
C) Formatプロパティ、DisplayFormatプロパティの設定に明示的にオブジェクトを作成します。
リストコントロール
- デザイン画面に表示されるコントロールのサイズ(ツールチップに表示される値)と、プロパティウィンドウのWidthおよびHeightプロパティで表示される値が異なります。正しいサイズは、WidthおよびHeightプロパティでの設定値です。
カレンダーコントロール
- SelectionModeプロパティがSelectionMode.MultiRichに設定されているとき、タッチ環境においてパンによるスクロールが動作しません。
ファンクションキーコントロール
- Visual Studio標準のFileUploadコントロールにフォーカスがあるときにファンクションキーを押下すると、JavaScriptエラーが発生する場合があります。これは、FileUploadコントロールのセキュリティポリシー上、コントロールにフォーカスがあるときに予約キーの動作を無効にするためのスクリプトが実行されるとエラーが発生する仕様によるものです。
この現象を回避するには、FunctionKeyButtonクラスのForbidReservedKeyBehaviorプロパティをFalseに設定します。ただし、この場合、予約キーの動作を禁止することはできません。
なお、HTML Input (File)コントロールにおいても同様です。
検証コントロール全般
- Web.configファイルのconfiguration要素に以下の設定を追加しない場合、UnobtrusiveValidationModeに関するエラーが発生します。
<configuration>
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
</configuration>
- SPREAD for ASP.NETのセルを検証対象としているとき、ValidationFailedイベントは発生しません。
- ブラウザのオートコンプリート履歴から選択された値は、正しく検証できません。
- 各検証コントロールは、リストコントロールの選択値を正しく検証できません。
エクステンダ全般
- エクステンダを使用したコントロールの機能をデザイン画面で設定している場合、コントロールを削除しても、エクステンダに追加された各コントロールの設定は削除されません。手動で削除する必要があります。
ページ上に一つのテキストコントロール(GcTextBox1)と、二つのマスクコントロール(GcMask1、GcMask2)が追加されていると、ショートカットエクステンダに自動的にデフォルトのショートカットが追加され、*.aspxファイルには次のように記載されます。
<im_extenders:GcShortcut ID="GcShortcut1" runat="server">
<shortcutitem controlid="GcTextBox1" value="Clear,113,DropDown,118" />
<shortcutitem controlid="GcMask1" value="Clear,113" />
<shortcutitem controlid="GcMask2" value="Clear,113" />
</im_extenders:GcShortcut>
デザイン画面でGcMask2を削除しても、上記のGcMask2の設定は削除されないため、次の一文を手動で削除します。
<shortcutitem controlid="GcMask2" value="Clear,113" />
検証アクションエクステンダ
- IconNotifyクラスを使用して、アイコンによるエラー通知を設定している場合、エラーアイコンが表示されたときに、ブラウザのサイズを変更すると、アイコンの表示位置が不正になる場合があります。
- 一つのコントロールに対し複数の検証コントロールが設定され、以下の検証アクションを設定している場合、最後に配置されている検証コントロールに対してのみ、エラー処理が行われます。
- ColorNotifyクラスを使用して色によるエラー通知を設定している
- ValueProcessクラスを使用してエラー値の処理方法を設定している
ショートカットエクステンダ
- Panel、UpdatePanelコントロールや、ASP.NET AJAX Control ToolkitのAccordion、Tabといったコンテナ系コントロールの外に配置し、これらコンテナ上にあるコントロールのショートカットを設定しても動作しません。
- TextChanging、DropDownOpen、DropDownCloseクライアントイベントで、NextControl、PreviousControlを実装しても動作しません。
- ListViewやFormViewなど、Visual Studio標準のデータバインドコントロールのテンプレート上に配置されているコントロールには、ショートカット機能を付与できません。
- テキスト、マスク、日付時刻、日付、時刻、数値、コンボコントロールから、標準ButtonまたはDropDownListコントロールにショートカットキーによりフォーカスを移動させたとき、フォーカス移動元のInputManコントロールの選択状態が残存します。
InputMan for ASP.NETは、Medium信頼レベル環境への配置が可能ですが、次の制限があります。
- サーバーマシンのグローバルアセンブリキャッシュ(GAC)にInputMan for ASP.NETのランタイムファイルを登録すると、セキュリティエラーが発生します。ランタイムファイルは、GACには登録せず、アプリケーションのBinフォルダにコピーしてください。
- web.configファイルでglobalization要素の設定によりエンコードをShift-JISに設定している場合、InputManコントロールと標準コントロールで異なる既定フォントが設定されます。
- web.configファイルに年号をカスタマイズする構成セクションを追加しても、設定が反映されません。
Server Core環境に配布する場合、Web.configファイルのセクションから以下のアセンブリの参照情報を削除する必要があります。
- System.Windows.Forms
- <add assembly="System.Windows.Forms, Version=~" />
- Microsoft.mshtml
- <add assembly="Microsoft.mshtml, Version=~" />