アプリケーション実行時等に以下の例外が発生する。 'System.ComponentModel.LicenseException'のハンドルされていない例外がGrapeCity.win.input.v3.0.dllで発生しました。
対象製品
InputMan for .NET 3.0J
詳細
この例外が発生する要因として、ライセンス情報が正しく設定されていないことが考えられます。
次のようなケースでこの問題が発生します。
・プロジェクト内にLicenses.licxファイルが存在しない。
・コントロールを動的に生成している。
・ユーザーコントロール、継承コントロールで使用している。
・クラスライブラリにFormを追加している。
それぞれの場合に応じて次のような処置をすることで、例外が発生しなくなります。
■プロジェクト内にlicenses.licxファイルが存在しない場合
(1) 対象のプロジェクトを開きます。
(2) Visual Studio .NETのソリューションエクスプローラーの [すべてのファイルを表示] ボタンをクリックします。
(3) ソリューションエクスプローラー内にlicenses.licxファイルがないことを確認します。
(4) [デザイン] ページを開いて使用しているInputManのコントロールをFormに貼り付けます。
(5) [ビルド(B)] メニューにある「(プロジェクト名)のリビルド」を実行します。
(6) ソリューションエクスプローラー内にlicenses.licxファイルが作成されたことを確認します。
(7) さきほど貼り付けたコントロールを削除し、プロジェクトを保存します。
■コントロールを動的に生成している場合
製品のコントロールをFormに貼り付けないで、コード中で動的に生成している場合は、製品ヘルプの以下の項目に記載されている手順に従ってlicenses.licxファイルを作成してください。
製品ヘルプ(InputManNet3.chm)
-はじめに
-本製品を使うにあたってのご注意
-Licenses.licxファイルの組み込み
■InputManをユーザーコントロール内で使用している場合
製品のコントロールを継承して独自のコントロールを作成したり、他のコントロールと組み合わせてユーザーコントロールを作成する場合は、LicenseProvider属性を設定する必要があります。
作成したコントロールにLicenseProvider属性を設定していない場合は、製品のライセンス情報を参照できないため、そのコントロールを使ったアプリケーションを実行したときに、例外が発生します。
コントロールにLicenseProvider属性を設定するには、次のように、クラスの宣言の前にLicenseProvider属性を設定します。
[Visual Basic]
Imports System.Drawing
Imports System.Windows.Forms
Imports System.ComponentModel
' 継承コントロールの場合
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class MyControl : Inherits GrapeCity.Win.Input.Edit
・・・
End Class
' ユーザーコントロールの場合
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class MyControl : UserControl
・・・
End Class
[C#]
using System.Drawing;
using System.Windows.Forms;
using System.ComponentModel;
// 継承コントロールの場合
[LicenseProviderAttribute(typeof(LicenseProvider))]
public class MyControl : GrapeCity.Win.Input.Edit
{
・・・
}
// ユーザーコントロールの場合
[LicenseProviderAttribute(typeof(LicenseProvider))]
public class MyControl : UserControl
{
・・・
}
■クラスライブラリにFormを追加して使用している場合
クラスライブラリのプロジェクトにFormを追加し、そのFormにInputManのコントロールを貼り付けている場合、呼び出し側プロジェクトのlicenses.licxファイルにそのコントロールの情報が組み込まれている必要があります。licenses.licxファイルの作成方法については、上記の「コントロールを動的に生成している場合」をご参照ください。
次のようなケースでこの問題が発生します。
・プロジェクト内にLicenses.licxファイルが存在しない。
・コントロールを動的に生成している。
・ユーザーコントロール、継承コントロールで使用している。
・クラスライブラリにFormを追加している。
それぞれの場合に応じて次のような処置をすることで、例外が発生しなくなります。
■プロジェクト内にlicenses.licxファイルが存在しない場合
(1) 対象のプロジェクトを開きます。
(2) Visual Studio .NETのソリューションエクスプローラーの [すべてのファイルを表示] ボタンをクリックします。
(3) ソリューションエクスプローラー内にlicenses.licxファイルがないことを確認します。
(4) [デザイン] ページを開いて使用しているInputManのコントロールをFormに貼り付けます。
(5) [ビルド(B)] メニューにある「(プロジェクト名)のリビルド」を実行します。
(6) ソリューションエクスプローラー内にlicenses.licxファイルが作成されたことを確認します。
(7) さきほど貼り付けたコントロールを削除し、プロジェクトを保存します。
■コントロールを動的に生成している場合
製品のコントロールをFormに貼り付けないで、コード中で動的に生成している場合は、製品ヘルプの以下の項目に記載されている手順に従ってlicenses.licxファイルを作成してください。
製品ヘルプ(InputManNet3.chm)
-はじめに
-本製品を使うにあたってのご注意
-Licenses.licxファイルの組み込み
■InputManをユーザーコントロール内で使用している場合
製品のコントロールを継承して独自のコントロールを作成したり、他のコントロールと組み合わせてユーザーコントロールを作成する場合は、LicenseProvider属性を設定する必要があります。
作成したコントロールにLicenseProvider属性を設定していない場合は、製品のライセンス情報を参照できないため、そのコントロールを使ったアプリケーションを実行したときに、例外が発生します。
コントロールにLicenseProvider属性を設定するには、次のように、クラスの宣言の前にLicenseProvider属性を設定します。
[Visual Basic]
Imports System.Drawing
Imports System.Windows.Forms
Imports System.ComponentModel
' 継承コントロールの場合
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class MyControl : Inherits GrapeCity.Win.Input.Edit
・・・
End Class
' ユーザーコントロールの場合
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class MyControl : UserControl
・・・
End Class
[C#]
using System.Drawing;
using System.Windows.Forms;
using System.ComponentModel;
// 継承コントロールの場合
[LicenseProviderAttribute(typeof(LicenseProvider))]
public class MyControl : GrapeCity.Win.Input.Edit
{
・・・
}
// ユーザーコントロールの場合
[LicenseProviderAttribute(typeof(LicenseProvider))]
public class MyControl : UserControl
{
・・・
}
■クラスライブラリにFormを追加して使用している場合
クラスライブラリのプロジェクトにFormを追加し、そのFormにInputManのコントロールを貼り付けている場合、呼び出し側プロジェクトのlicenses.licxファイルにそのコントロールの情報が組み込まれている必要があります。licenses.licxファイルの作成方法については、上記の「コントロールを動的に生成している場合」をご参照ください。
キーワード
機能・仕様
この文書は、以前は次のFAQ IDで公開されていました : 6766