お世話になります。
FlowLayoutPanelを継承して機能を付加しようと考えているのですが、どうしても巧く行かないのでご存知の方がいらっしゃれば教えてください。
■ 試したこと
1.プロジェクトにユーザーコントロールを追加。
2. FlowLayoutPanelを継承するように変更。
C#
1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Drawing; 5using System.Data; 6using System.Linq; 7using System.Text; 8using System.Threading.Tasks; 9using System.Windows.Forms; 10using System.ComponentModel.Design; 11 12namespace WFroms 13{ 14 [Designer("System.Windows.Forms.Design.PanelDesigner, System.Design")] // <- どちらも試した 15 // [Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))] // <- どちらも試した 16 public partial class WFlowLayoutPanel : FlowLayoutPanel 17 { 18 public WFlowLayoutPanel() 19 { 20 InitializeComponent(); 21 } 22 } 23}
■ 困っていること
作成した、WFlowLayoutPanel に1度コントロールを配置すると、ドラッグしても配置を移動することができません。
C# VS2017、2019で試しましたが、同じ結果になりました。
よろしくお願いいたします。
パネルをクリックすると左上の方に矢印を四つ組み合わせたアイコンが出ませんか?
> 1.プロジェクトにユーザーコントロールを追加。
> 2. FlowLayoutPanelを継承するように変更。
まずこれが意味が分かりません。
UserControl用に作成されたDesignerコードが悪影響を及ぼしているだけだと思われますが。
FlowLayoutPanelを継承させただけのクラスを普通に作成し、そこにコントロールを置いても問題なく移動できます。
すみません、最初に書くべきでした。
> FlowLayoutPanelを継承させただけのクラスを普通に作成し
は最初に試しましたが、やはり、コントロール(貼り付けた子コントロール)の移動ができません。
それで、この辺りを参考にやってみたのですがダメでした。
https://www.exceedsystem.net/2020/08/27/how-to-use-usercontrol-as-control-contailer-in-design-time/
いやだから、パネルをクリックすると左上の方に矢印を四つ組み合わせたアイコンが出ませんか?
ボタンにフォーカスがある時にパネルが移動できないのは当然でしょう?
「パネル」がわかんないのかな。
「FlowLayoutPanel のボタンのないところ」ならわかりますか?
FlowLayoutPanelを移動する方法ではなく、FlowLayoutPanelに配置したコントロールの移動では?
そのアイコンが出たら、アイコンをドラッグしてみてください。動くから。
> FlowLayoutPanelを移動する方法ではなく、FlowLayoutPanelに配置したコントロールの移動では?
ああ、そういうことですか。
kantomiさんのコメントのリンク先は、UserControlをコンテナとして使う場合の方法ですね。
普通にFlowLayoutPanelを継承した場合、特にDesigner属性を指定せずともコントロールを配置した場合の振る舞いはFlowLayoutPanelと同じになると思うのですが。
回答1件
あなたの回答
tips
プレビュー