mik*_*jik 5 vb.net scroll panel picturebox winforms
我动态地将20个图片框添加到面板中,并希望在使用鼠标滚轮时看到面板滚动.为了实现这一点,我尝试在面板控件上将autoscroll设置为true.这是代码.对于i As Integer = 1到20:
Dim b As New PictureBox()
b.Image = Nothing
b.BorderStyle = BorderStyle.FixedSingle
b.Text = i.ToString()
b.Size = New Size(60, 40)
b.Location = New Point(0, (i * b.Height) - b.Height)
b.Parent = Panel1
Panel1.Controls.Add(b)
Next
Run Code Online (Sandbox Code Playgroud)
我用按钮控制做了同样的事情,它工作得很好.对于i As Integer = 1到100:
Dim b As New Button()
b.Text = i.ToString()
b.Size = New Size(60, 40)
b.Location = New Point(0, (i * b.Height) - b.Height)
b.Parent = Panel1
Panel1.Controls.Add(b)
Next
Run Code Online (Sandbox Code Playgroud)
它适用于"按钮"控制,但不适用于"图片框"或"标签"控件?如何使用"鼠标滚轮"实现滚动效果?
当面板或其中的控件具有焦点时,面板将使用鼠标滚轮滚动.您遇到的问题是,当您单击它时,PictureBox和面板都不会获得焦点.如果您select()在面板上调用,您将看到鼠标滚轮再次开始工作.
一种可能的解决方案是通过处理Control.MouseEnter事件,在鼠标光标进入时选择面板:
void panel1_MouseEnter(object sender, EventArgs e)
{
panel1.select();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8211 次 |
| 最近记录: |