daiki130412
@daiki130412 (だいち)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

C#のユーザーコントロールについて。

Q&A

Closed

解決したいこと

現在、C#にてユーザーコントロールを作っております。
配置としては、2つのコンポーネントから成るものです。(上にラベル、下にボタン)

このユーザーコントロールを他の場所(同じソリューション上)で上下反転させて使いたいと考えています。(上にボタン、下にラベル)

機能としては大部分が同じ(一部が異なる)なので、使いまわせる方法を探しております。
継承ではコントロールの再配置がてきず、上下反転させるだけでは全ての機能を受け継いでしまうため、不都合が生じます。

もし、良い案があれば教えていただきたく思います。

0

1Answer

  • コントロールの配置に関しては,単純にそれを行うメソッドでも用意してやれば良いのではないかと思う.(それが呼ばれたらボタン等の座標(?)を然るべく変更すればよいのでは)
  • 機能の差については,機能をそのユーザコントロールの外側に実装して,何らかの方法で(例えばイベントハンドラなどから)その外側の機能実装を呼ぶだとか,そういうことをすれば良いのでは?

…しかしながら,根本的に,
コントロールが2つしか無いようなものであれば,それをわざわざどうにかして使い回すよりは,個別に作った方が話が早くてコードも簡単で良いのではないだろうか? と思う.
(「継承」をコピペの代替手段みたく考えているのであれば,そこはもう素直にコピペで済ませればいいんじゃないかな感,みたいな.)

2Like

Comments

  1. @daiki130412

    Questioner

    回答ありがとうございます!
    非常に参考になります!
    コードに活かそうと思います!

  2. そもそも,その「ラベルとボタンしかないユーザコントール」というのがどれだけの「機能」を有しているというのか?
    本当にそれを「使いまわす」ことの 必要性/価値/etc があるものなのだろうか?

    「それをどうにかこうにか使いまわしたこと」が後から足枷となる可能性はないのだろうか?
    例えばそれを使っているある一か所で「ここだけはボタンがもう一個ほしいんだよなぁ」とかなったりしないのか? そういうときに,それがすんなりとやれるのか?

    微妙に異なるという機能の差をどうにかして解決するために用意した仕組みのコードというのは,後からコードを読む際にうんざりする物になったりしないのか?

    とか何とかいろいろ考えてみると良いのかも(まだ考えてないなら,だけど).

Your answer might help someone💌