我有一个女巫小组,我代表一个时间表 - 24小时(24 x 60 min = 1 440 min
)。
我需要将滚动条的步骤设置为一分钟。很明显,此类面板的最小尺寸应为1440
像素。
假设客户端屏幕(宽度)上的屏幕分辨率为1280
,那么面板容器最大尺寸为1280。
现在,如果我希望我的步骤是一分钟,我需要将步骤设置为滚动条的容器1280 / 1440 = 0.(8)
- 但这是不可能的,因为Step(myContainer.HorizontalScroll.SmallChange)是int
值。 ..
我能为此做些什么吗?
修改
每分钟0.2像素可能被认为是不可观察的错误,但如果我的步数为5分钟,那么实际上它将是4.(4)px但是在滚动条= 5时,10分钟的步长将是= 8 (8)px:10px。在800x600屏幕上,10分钟步长将是= 5.(5)px:10px,因此在每2次点击(20分钟)中我有4像素错误。这个“三角洲”变得可见。
最后,这是一个示例,不能正常工作 - 即使我到达使滚动条可见 - 奇怪的滚动条可见性是不可预测的...... - 我无法滚动所有VOLVO徽标6(60Maxim / 10smallChange)步骤......:
alt text http://lh6.ggpht.com/_1TPOP7DzY1E/S1eOPUlVvQI/AAAAAAAAC8M/ZFWDI_aaJxI/s800/panels.png
设计
this.panel2.BackgroundImage = ....Resources.volvo_logo;
this.panel2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
代码:
public partial class Form1 : Form
{
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Panel panel2;
public Form1()
{
InitializeComponent();
panel1.AutoScroll = false;
panel1.HorizontalScroll.Maximum = 60;
panel1.HorizontalScroll.SmallChange = 10;
panel1.HorizontalScroll.LargeChange = 10;
panel1.HorizontalScroll.Visible = true;
panel1.Scroll += new ScrollEventHandler(panel1_Scroll);
}
void panel1_Scroll(object sender, ScrollEventArgs e)
{
Console.WriteLine(
"Scroll: OldVal {0}, NewVal {1}, Orientation {2}, Type {3}",
e.OldValue, e.NewValue, e.ScrollOrientation, e.Type);
}
}
答案 0 :(得分:0)
以像素为单位设置ClientSize(1440)并保留小变化= 1.它也将以像素为单位并与您的分钟匹配。