none
コントロールをコピー(複製)したい RRS feed

  • 質問

  • Formに動的にコントロール(例えば、TextBoxやComboBox等)を追加するのは分かるのですが、

    既にFormに貼り付いているコントロールのコピーを作成し、それを改めてFormに追加したいと考えて

    います。

     

    つまり、Formに貼り付いているコントロールのプロパティ値がまったく同じコントロールを新たにFormに

    追加したいのです。

     

    それで、分からない事は、

    ・コントロールのコピー(複製)ってどうするのか?

    ・既存コントロールのプロパティ値の全取得ってどうするのか?

     

    皆様、ご教授願えませんでしょうか。

    宜しくお願い致します。

     

    環境:

    Windows Vista Ultimate

    Visual Studio 2005 Professional Edition SP1

    .NET Framework 2.0

    2008年2月6日 0:47

回答

  • ぶるーのさん、こんにちは。

     

    クローンを作るには MemberwiseClone メソッドが使えますが、protected ですし (呼び出せないことはない) 仮に実行してもコントロールが持つハンドルまでコピーされてしまうので複製と呼べるものは作られません。

     

    リフレクションですべてのプロパティを代入することも可能ですが、ここでもそのまま値を移してはまずいもの (ハンドルなど) があるのでご注意ください。

    2008年2月6日 5:02

すべての返信

  • ぶるーのさん、こんにちは。

     

    クローンを作るには MemberwiseClone メソッドが使えますが、protected ですし (呼び出せないことはない) 仮に実行してもコントロールが持つハンドルまでコピーされてしまうので複製と呼べるものは作られません。

     

    リフレクションですべてのプロパティを代入することも可能ですが、ここでもそのまま値を移してはまずいもの (ハンドルなど) があるのでご注意ください。

    2008年2月6日 5:02
  • こんにちは。中川俊輔 です。

     

    じゃんぬねっとさん、大変参考になる回答ありがとうございます。

     

    ぶるーのさん、フォーラムのご利用ありがとうございます。

    その後いかがでしょうか?

    問題解決に大変有用な回答のようでしたので、

    勝手ながらじゃんぬねっとさんの回答へ回答済みチェックをつけさせていただきました。

     

    問題解決につながる回答があった場合は、なるべく回答済みボタンを押してチェックを付けてください。

    ぶるーのさんはチェックを解除することもできますので、ご確認ください。

     

    それでは!

     

    2008年2月14日 8:29