0

私はキャプチャ署名と呼ばれるボタンを備えた MainForm (WinForm) を持っています。このボタンのClickイベントでは、インスタンス CaptureSignatureForm を作成しています。コードは次のとおりです。

MainForm oSign = new MainForm(this);
oSign.ShowDialog();

フォームが開いているときに署名をキャプチャし、キャプチャ後にフォームを閉じます。
キャプチャ署名ボタンを 2 回目にクリックすると、エラーがスローされます。"Object reference not set to an instance of an object"

サードパーティの dll を使用して署名を取得しています。

if 条件の斜体の太字テキストでエラーが発生します。control は signaturecapturedevice のオブジェクトです。サード パーティのドキュメントによると (タブレットに接続すると、機能オブジェクトが自動的に入力されます)。

  if (control.EnsureConnected() && ***control.capabilities.LCDWidth != 0***)
            {
                this.ClientSize = new Size(tabletWidth, tabletHeight);

                if (model == Model.STU300)
                {
                    btnOk.SetBounds(tabletWidth - 80, 0, 80, tabletHeight / 3);
                    btnClear.SetBounds(tabletWidth - 80, tabletHeight / 3, 80, tabletHeight / 3);
                    btnCancel.SetBounds(tabletWidth - 80, (tabletHeight / 3) * 2, 80, tabletHeight / 3);
                }
                else
                {
                    btnOk.SetBounds(0, tabletHeight - 55, tabletWidth / 3, 55);
                    btnClear.SetBounds(tabletWidth / 3, tabletHeight - 55, tabletWidth / 3, 55);
                    btnCancel.SetBounds((tabletWidth / 3) * 2, tabletHeight - 55, tabletWidth / 3, 55);
                }
4

1 に答える 1

0

capabilities.LCDWidth が呼び出され、機能に値がない場合に例外が発生しているようです。ベンダーのドキュメントで機能を確認するか、コントロールを調べてみてください。そのようなものを再接続/閉じてから、これを実行してみてください

于 2012-09-26T10:40:56.573 に答える