- 主题:用户控件上放了个picturebox,如何让用户控件响应鼠标消息?
做了个UserControl控件,控件上放了个铺满的picturebox,
只有picturebox能对鼠标按下事件响应,UserControl控件不响应鼠标按下消息。
怎么让UserControl控件能直接接收鼠标按下消息呢?
只有一个picturebox可能还好,手工调用onclick转发下消息,但是如果picturebox控件多了,每个都要手工调用感觉很麻烦,有没有正规的解决方案?另外,即使这样,我想在usercontrol上用Graphics绘图,是不是也没有办法绘制了?因为绘出来的也会被picturebox挡住?这个怎么解决呢?
直接在picturebox上绘图太麻烦了,有可能有多个picturebox,画的线会穿过多个picturebox
试了把UserControl bringtofront 和把 picturebox sentoback,都不行...
--
修改:moneybox FROM 106.39.42.*
FROM 106.39.42.*
铺满了不就挡住了吗?那只能在picturebox的onmousedown里面调用this.onmousedown()转发啦,多个box的话放数组里循环注册事件委托吧
--
FROM 114.254.2.*
用代码把所有子 pictureBox的事件绑定到同一个 handler
【 在 moneybox 的大作中提到: 】
: 做了个UserControl控件,控件上放了个铺满的picturebox,
: 只有picturebox能对鼠标按下事件响应,UserControl控件不响应鼠标按下消息。
: 怎么让UserControl控件能直接接收鼠标按下消息呢?
: ...................
--
FROM 113.65.10.*
看下preview开头的事件,事件有传递方向的
【 在 moneybox (乐乐) 的大作中提到: 】
: 做了个UserControl控件,控件上放了个铺满的picturebox,
: 只有picturebox能对鼠标按下事件响应,UserControl控件不响应鼠标按下消息。
: 怎么让UserControl控件能直接接收鼠标按下消息呢?
:
--
FROM 112.14.77.*
没有更优化的办法么....
另外,即使这样,我想在usercontrol上用Graphics绘图,是不是也没有办法绘制了?因为绘出来的也会被picturebox挡住?这个怎么解决呢?
直接在picturebox上绘图太麻烦了,有可能有多个picturebox,画的线会穿过多个picturebox
【 在 tower6 的大作中提到: 】
: 铺满了不就挡住了吗?那只能在picturebox的onmousedown里面调用this.onmousedown()转发啦,多个box的话放数组里循环注册事件委托吧
--
FROM 106.39.42.*
你直接在 UserControl 里面 DrawImage
抛弃 PictureBox
【 在 moneybox 的大作中提到: 】
: 没有更优化的办法么....
: 另外,即使这样,我想在usercontrol上用Graphics绘图,是不是也没有办法绘制了?因为绘出来的也会被picturebox挡住?这个怎么解决呢?
: 直接在picturebox上绘图太麻烦了,有可能有多个picturebox,画的线会穿过多个picturebox
: ...................
--
FROM 113.65.10.*
会带来一系列麻烦问题...
【 在 keygen 的大作中提到: 】
: 你直接在 UserControl 里面 DrawImage
: 抛弃 PictureBox
--
FROM 106.39.42.*
你都要直接用 Graphics.DrawXXX 了,避免麻烦只会带来更多的问题
【 在 moneybox 的大作中提到: 】
: 会带来一系列麻烦问题...
--
FROM 113.65.10.*
有没有一个示例的代码....
【 在 keygen 的大作中提到: 】
: 用代码把所有子 pictureBox的事件绑定到同一个 handler
:
--
FROM 106.39.42.*
foreach(var control in this.Controls)
{
if(control is PictureBox c)
{
c.MouseDown += pictureBox_MouseDown;
}
}
private void pictureBox_MouseDown(object sender, MouseEventArgs e)
{
}
【 在 moneybox 的大作中提到: 】
: 有没有一个示例的代码....
--
FROM 113.65.10.*