none
PasswordCharを設定したTextBoxのコンテキストメニューに、コピー、切り取り、削除を表示する RRS feed

  • 質問

  • みなさん。こんにちは。いつも参考にしています。

    質問ですが、
    パスワードを「*」で表示するため、PasswordCharを設定したTextBoxのコンテキストメニューには、コピー、切り取り、削除項目が表示されなくなりますが、これを表示させる事は出来ますでしょうか?

    ContextMenuStripを使用して自作する事も考えられますが、「元に戻す」等の便利機能もあるので、出来れば元のコンテキストメニューにコピー、切り取り、削除を表示出来たらと思います。

    環境は、
    VS2010 VB です。

    何かお判りの方、ご教授お願いします。
    宜しくお願いします。

    2011年1月5日 7:00

回答

  • 「元に戻す」は Undo メソッドで実行できます。
    しかし PasswordChar が設定された場合には、Copy や Undo メソッド等の動作に制限がかかりますので、MenuStrip で自作することもできないかもしれません。

    簡単な代替案として、テキストボックスの横に [パスワードを表示する] というチェックボックスを配置し、チェック状態によって PasswordChar をセットしたり解除したりしてはいかがでしょうか?
    (表示したときだけコピー等ができるということで)

    • 回答としてマーク しんなべ 2011年1月11日 11:33
    2011年1月5日 7:37

すべての返信

  • 「元に戻す」は Undo メソッドで実行できます。
    しかし PasswordChar が設定された場合には、Copy や Undo メソッド等の動作に制限がかかりますので、MenuStrip で自作することもできないかもしれません。

    簡単な代替案として、テキストボックスの横に [パスワードを表示する] というチェックボックスを配置し、チェック状態によって PasswordChar をセットしたり解除したりしてはいかがでしょうか?
    (表示したときだけコピー等ができるということで)

    • 回答としてマーク しんなべ 2011年1月11日 11:33
    2011年1月5日 7:37
  • パスワードに関してですが、個人的な意見としまして、コピー等が出来ることは

    セキュリティ的に良くないと思います。

    また、コピー等が可能にする場合は、それ相応のセキュリティ処理(暗号化など)を

    した方がとよいかと思います。

    例えば、パスワードTextBoxから「*****」をコピーし、テキストエディタに貼り付ける

    だけで、パスワードが簡単に分かってしまうことになります。

     

    もし、そこまでセキュアである必要がない環境である、という事で、パスワードの

    コピーを許可するのであれば、そもそもパスワード自体が不要なシステムなような

    きがします(IDだけでよい、もしくはパスワードを***にする必要がない)。

     

    また、管理者のみが行うようなメンテナンス操作であっても、

    パスワードというものは、そのユーザ自身のみが知りうるべきではないかと思います。

     

    2011年1月6日 1:36
  • honefaiさんご指摘の通り、セキュリティに逆らったプログラムはあまりお勧めできません。カスタムコントロール化しようとしても、たとえばCtrl+Cを押すと、やっぱりエラーのチップが出てきます。
    #TextBoxのCopyメソッドは使えないため、一旦ワーク変数に入れて、クリップボードに追加することになります。

    画面デザイン的にもTH01さんご紹介の方法が一番良いのではないでしょうか。

    2011年1月6日 6:14
  • やはりセキュリティ的にはお勧めしませんが、パスワード入力後でもPasswordCharプロパティをリセットすれば入力したパスワードが表示されますので、普通にコピー等ができるようになります。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年1月6日 6:51
    モデレータ
  • みなさん。こんにちは。

    TH01さん
    honefaiさん
    Chukiさん
    trapemiyaさん
    ご返事有難うございます。返事が遅れてしまい、申し訳ありません。

    honefaiさん
    Chukiさん
    確かに、セキュリティ的な問題があるので、仕様を含めて考えてみます。

    TH01さん
    trapemiyaさん
    簡単に実現出来る事ではなさそうですね。ですが、ご意見、とても参考になりました。
    有難うございます。

    宜しくお願いします。

    2011年1月11日 11:33