0
Panel
- MouseDown
、MouseMove
、MouseUp
の一連のイベントがあります。私はまたのイベントハンドラをPanel
に持っています。しかし、場合によっては、のMouseMove
ハンドラを、Panel
のハンドラに操作の「制御を移す」ことを希望します。問題は、アクションがLabel
に「ロック」されているためです。のようなものは、がMouseUp
まで呼び出されないため、役に立たないと考えられます。操作の「制御を移す」方法はありますか?ボタンがまだ押されているときのマウス操作の制御を転送する方法
ここに私が持っているものの簡単な例があります:(label1
はpanel1
です)。
public Form1()
{
InitializeComponent();
label1.MouseDown += label1_MouseDown;
}
void label1_MouseDown(object sender, MouseEventArgs e)
{
panel1.MouseMove += panel1_MouseMove;
}
void panel1_MouseMove(object sender, MouseEventArgs e)
{
Text = "success";
}
テキストは、MouseUpまで変更されません。
+1。しかし、私の実際のアプリには2つの複雑なクラス(マウスイベントハンドラが多数あります)があり、ラベル用とパネル用です。私はラベルから操作を完全に切り離そうとしています。しかし、私は質問の私の処方で私は明確ではなかったと思う。 – ispiro
'label1_MouseDown'の' label1_MouseUp'から購読を解除し、 'panel1_MouseDown'を再度購読した後に、購読することができます。 'label1.MouseUp - = label1_MouseUp;'のようなもの – mammadalius