C# ScrollBar使用

塔克茜丝 2020-07-16 10:38:07
网上查了好多帖子对V,HScrollBar的,感觉都没被我get到

有没有一个详细的基础的介绍?

比如,scrollbar可以给哪些控件用

怎么设置,设置什么含义,怎么让它起作用,需要哪些事件这些

网上直接贴代码,有点理解不了

多谢!
...全文
3433 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
塔克茜丝 2020-08-05
  • 打赏
  • 举报
回复
学习了,结贴给分
desperaso 2020-07-17
  • 打赏
  • 举报
回复
临时写的,不一定对。应参考楼上的

public Form1()
{
InitializeComponent();
// 外框容器
Panel panel_box = new Panel()
{
Size = new Size(200, 400),
Location = new Point(100, 10),
};
this.Controls.Add(panel_box);
// 文字容器
Panel panel_content = new Panel() { BackColor = Color.SteelBlue, };
panel_box.Controls.Add(panel_content);
// 添加一堆文字
for (int i = 0; i < 111; i++)
{
Label panel_text = new Label()
{
AutoSize = false,
Size = new Size(200, 22),
Text = i + ".",
Location = new Point(0, i * 20),
ForeColor = Color.White
};
panel_content.Controls.Add(panel_text);
}
panel_content.AutoSize = true;
// 建立滚动条
VScrollBar scrollBar = new VScrollBar()
{
Size = new Size(20, 420),
Location = new Point(300, 10),
};
this.Controls.Add(scrollBar);
// 滚动动作
scrollBar.Scroll += (s, e) =>
{
double y = ((double)panel_content.Height - panel_box.Height) / 92; // 多高都是92是固定值
int offset = (int)(-scrollBar.Value * Math.Ceiling(y));
panel_content.Top = offset < -panel_content.Height + panel_box.Height ? -panel_content.Height + panel_box.Height : offset;
};
}
}
  • 打赏
  • 举报
回复
没有哪个控件是为了 ScrollBar 而单独设计的控件。

设计自己的控件,就是把各种控件拖入自己的用户控件里边,组成自己的应用系统控件。ScrollBar 是独立的,是可以跟其它控件协同使用的。不是谁依赖谁的关系。作为一个随意搭配组合到自定义控件里的控件,主要靠你创意,而不是靠抄现成。
  • 打赏
  • 举报
回复
引用 楼主 塔克茜丝 的回复:
比如,scrollbar可以给哪些控件用

它是一个独立的控件,就好像是 TextBox 一样,你想用在哪里就用在哪里。
threenewbee 2020-07-17
  • 打赏
  • 举报
回复
安装好msdn,选中scrollbar,f1,有帮助

111,077

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧