none
TextboxのPasswordChar設定でエラー RRS feed

  • 質問

  • VS2010Premium(10.0.30319.1)でVisualBasicのFORMSアプリ開発を始めたばかりの者です。

    TextboxのプロパティPasswordCharに"*"(アスタリスク)を設定した状態で実行すると、

    「外部コンポーネントが例外をスローしました。」

    のエラー表示になります。

    当初はログイン画面をある程度作った際に発覚したのですが、新規Form、Textboxを追加しただけの状態

    でもPasswordCharに何か文字を入れた段階でエラーが起きる様です。

     

    OS依存の現象かどうかは定かではありませんが、他PC(XP)の事例ではロード前にApplication.EnableVisualStyles()

    を指定すると同様のエラーが起きない様ですが、当方のWin7では指定しても解消しません。

    対応方法をご存知の方がおりましたらご教示願います。

     

    (エラー詳細)

    System.Runtime.InteropServices.SEHException はハンドルされませんでした。

      Message=外部コンポーネントが例外をスローしました。

      Source=System.Windows.Forms

      ErrorCode=-2147467259

      StackTrace:

           場所 System.Windows.Forms.SafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow)

           場所 System.Windows.Forms.Control.SetVisibleCore(Boolean value)

           場所 System.Windows.Forms.Form.SetVisibleCore(Boolean value)

           場所 System.Windows.Forms.Control.set_Visible(Boolean value)

           場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)

           場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)

           場所 System.Windows.Forms.Application.Run(ApplicationContext context)

           場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()

           場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()

           場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)

           場所 WindowsApplication2.My.MyApplication.Main(String[] Args) 場所 17d14f5c-a337-4978-8281-53493378c1071.vb:行 81

           場所 System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)

           場所 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)

           場所 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

           場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state)

           場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)

           場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

           場所 System.Threading.ThreadHelper.ThreadStart()

      InnerException: 


    2011年2月16日 10:12

回答

  • 自己レスです。
    PasswordChar="*"を使用せずUsePasswordChar=Trueにしておけばとりあえず想定通りの動きなので代替策としてクローズしたいと思います。早く気付くべきだったと反省しています。ありがとうございました。


    umg0731
    • 回答としてマーク umg0731 2011年2月17日 6:57
    2011年2月17日 6:57

すべての返信

  • SEHException が発生しているのが気になります。こちらが参考になりませんか?

    http://support.microsoft.com/kb/897298/ja


    ひらぽん http://d.hatena.ne.jp/hilapon/
    2011年2月16日 10:51
    モデレータ
  • ひらぽんさん

    コメントありがとうございます。SubMainを作った時はリンクの様に記述してましたが改善しませんでした。

    今回掲載したエラーはForm1にTextbox1を置いただけのプロジェクト(PasswordChar="*"のみ指定)で実行しただけでも出る現象でApplication.EnableVisualStylesは記述すらありません。PasswordCharの有無だけで挙動が変わってしまいます。

    2011年2月17日 0:44
  • 自己レスです。
    PasswordChar="*"を使用せずUsePasswordChar=Trueにしておけばとりあえず想定通りの動きなので代替策としてクローズしたいと思います。早く気付くべきだったと反省しています。ありがとうございました。


    umg0731
    • 回答としてマーク umg0731 2011年2月17日 6:57
    2011年2月17日 6:57