私はここに新しく、これが私の最初の投稿です。ここSOで新しい質問を作成する際の基準に従わない場合は、申し訳ありません。
私は過去数時間、既存の PictureBox コントロールに新しいプロパティを追加できるようにするカスタム クラスをプログラムしようと頭を悩ませてきました。これにより、Color をカスタム プロパティに設定できるようになります。ユーザーがコントロールをホバーすると、選択された色の境界線。
以下は、これまでに書いたコードです。
[ProvideProperty("HoverColor", typeof(PictureBox))]
public class PictureBoxHover : Component, IExtenderProvider
{
private readonly Dictionary<IntPtr, Color> _hoverColors;
public PictureBoxHover()
{
_hoverColors = new Dictionary<IntPtr, Color>();
}
public bool CanExtend(object extendee)
{
return (extendee is PictureBox);
}
public Color GetHoverColor(PictureBox picb)
{
Color color;
if (_hoverColors.TryGetValue(picb.Handle, out color))
return color;
return Color.Empty;
}
public void SetHoverColor(PictureBox picb, Color color)
{
Color hoverColor;
_hoverColors[picb.Handle] = color;
}
}
上記のコードは、必要に応じて、カスタム プロパティ "HoverColor" をソリューション内のすべての既存の PictureBox コントロールに追加します。ここで行う必要があるのは、ユーザーがコントロールにカーソルを合わせたときに、PictureBox の周囲に設定された色で境界線を描画することだけです。
クラスに PictureBox または Control クラスを継承させたくありません。すべての PictureBox を通常の PictureBox からカスタム PictureBox に変更する必要があるためです。そのため、このカスタム プロパティと機能を通常の PictureBox コントロール。
どんな助けでも大歓迎です=)