[叩响C#之门]写给初学者:滚动条原理

17.9.4 在滚动窗口中绘图

窗体的大小由窗体的Size属性确定,这个大小包括了窗体的标题栏和边框。而窗体中用于显示客户文 档的区域称为工作区(ClientRectangle),其大小用窗体的ClientSize 属性表示(如图17-20所示)。

在图17-20中,窗体的大小为308×234像素,其中标题栏的宽度为30像素,边框的宽度为4像素,所以 工作区的大小为300×200像素。

如果我们要在300×200像素的工作区内显示一个200×150像素的矩形和一个300×100像素的椭圆,会 出现什么情况呢?

图17-20 在滚动窗口中绘图 图17-21 文档大小超出工作区

为了叙述方便,我们把要显示的文本、图形等内容称为“文档”。因为这时文档的总高度为250像素, 而窗口工作区的高度只有200像素,所以总有一部分无法显示(如图17-21所示)。如果文档太大,工作区 不能完全显示,就需要在窗口中添加滚动条,以便查看被挡住的部分。

怎样才能显示滚动条呢?这可以通过设置窗体的AutoScrollMinSize属性实现。

this.AutoScrollMinSize = new Size(300, 250);

因为文档的面积为300×250像素,所以我们把AutoScrollMinSize的值设置为300×250,一旦工作区面 积小于该值,窗体就会自动显示相应的滚动条。

请新建一个名为“ScrollWindow”的项目,窗体大小设置为308×234像素(除去标题栏和边框,工作 区的实际大小为300×200像素),然后重写OnPaint()方法。

试一试:在滚动窗口中绘图

public partial class Form1 : Form
{
    //构造函数
    public Form1()
    {
        InitializeComponent();
        //将窗体的背景色设置为白色
        this.BackColor = Color.White;
        //当工作区小于300×250像素时显示滚动条
        this.AutoScrollMinSize = new Size(300, 250);
    }
    //重写OnPaint()方法
    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
        Graphics g = e.Graphics;
        //绘制矩形和椭圆
        g.FillRectangle(Brushes.LightPink, 0, 0, 200, 150);
        g.FillEllipse(Brushes.LightGreen, 0, 150, 300, 100);
    }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索窗体
, 像素
, 滚动
, 大小
, onpaint
, C#,滚动条
, 工作区
, 300
滚动窗体
叩响c 之门、叩响c之门 pdf、叩响命运的门读后感、叩响命运的门、叩响天堂之门,以便于您获取更多的相关知识。

时间: 2024-08-03 21:04:15

[叩响C#之门]写给初学者:滚动条原理的相关文章

[叩响C#之门]写给初学者:类和对象的概念

面向对象编程:类和对象的概念 [说明:本文是给刚刚接触编程的初学者看的,大佬们看起来 可能觉得很简单,勿怪] 类(Class) 面向对象思想来源于对现实世界的认知.现实世界缤纷复杂.种类繁多,难于认识和理 解.但是聪明的人们学会了把这些错综复杂的事物进行分类,从而使世界变得井井有条.比如我们由各式 各样的汽车抽象出汽车的概念,由形形色色的猫抽象出猫的概念,由五彩斑斓的鲜花抽象出花的概念等. 汽车.猫.鲜花都代表着一类事物.每一类事物都有特定的状态,比如汽车的品牌.时速.马力.耗油量 .座椅数,小

[叩响C#之门]写给初学者:自定义事件

16.4.2自定义事件 通过上一节的论述,我们知道要创建一个事件驱动的程序需要下面的步 骤: 1.声明关于事件的委托; 2.声明事件; 3.编写触发事件的函数; 4.创建事 件处理程序; 5.注册事件处理程序; 6.在适当的条件下触发事件. 现在我们来编写一 个自定义事件的程序.主人养了一条忠实的看门狗,晚上主人睡觉的时候,狗负责看守房子.一旦有小偷进来 ,狗就发出一个Alarm事件,主人接到Alarm事件后就会采取相应的行动.假设小偷于2009年元旦午夜时分到 达. 作者:梁斌玉 摘自<C#初

[叩响C#之门]写给初学者:平移变换

17.9 坐标变换 默认情况下,坐标系的原点位于视图区域的左上角,水平方向为x轴,竖直方向为y轴.但有时候我们 需要改变坐标轴的位置或方向,这时就需要坐标变换.常用的坐标变换有平移变换.旋转变换和伸缩变换 三种. 17.9.1 平移变换 平移变换是指把坐标系的原点由一个位置平移到另一个位置,我们可以通过Graphics 类的 TranslateTransform()方法实现平移变换. 下面我们通过一个示例来说明怎样进行平移变换. 图17-16 "坐标变换"窗口 新建一个名为"

叩响C#之门

问题描述 请问谁有叩响C#之门这本电子书,pdf或pdg格式都可以,谢谢. 解决方案 解决方案二:http://msdn.microsoft.com/zh-cn/library/cc437899(v=vs.71).aspx#vborivisualbasicinactionendtoendsolutionsanchor2解决方案三:虽然不是你要的那本书,但是这里的内容足够强大,上边很多的事例,应该满足你的需要.解决方案四:如果你是新手,上边的演练你都做一遍,基本就能找工作了.解决方案五:不妨试试三

SEO新手应该如何学习SEO写给初学者

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 (建议SEO初学者经验不足着认真看完): 呵呵!为什么今天会突然写这个话题呢? 新手如何学习SEO?想必很多SEO新手都应该了解SEO学习的流程,为什么我会再次强调SEO学习的流程,那是因为很多SEO新手在接触SEO这行的时候,最开始概念就是发外链,写原创文章,换友链,等等这些. 当然了,我也不可能去写那种最基本的东西,一个学SEO的人,应该

[叩响C#之门]第1章 初识编程 1.6 数据和内存

1.6 数据和内存 用笔和纸计算,数据是写在纸上的:用计算机计算,数据是写在内存里的.那么数据在内存里是如何存储的呢?本节主要学习数据在内存中的存储方式,都是些简单.很基础的知识,没有这些知识,也可以学习C#语法,但不理解数据的存储方式,你将会对编程有一种神秘莫测的感觉.现在就让我们揭开这层神秘的面纱,清清楚楚.明明白白地学习编程吧.

[叩响C#之门]第1章 初识编程 1.3 认识程序

1.3 认识程序 由于现实生活中没有编程体验,对初学者来说,编程是极其陌生的事物,因此我们先来编写一个简单的程序,边看实例,边讲概念,通过这个简单的例子获取初步的编程体验.

[叩响C#之门]第1章 初识编程 1.1 C#简介

想想自己上学的时候,买一本书是很困难的事情,经常要缩衣节食,现在不少 博友向我求电子版,因此我决定把这本书发到博客上,希望对那些买不起书的同 学有所帮助.我希望再经过几年的努力,把这本书写成一本专门面向初学者的经 典之作,但自己能力实在有限,因此欢迎高手们多提宝贵意见,对于建议被采纳 的博友,再版时将赠书酬谢. 另外,本书设想对象是完全没有编程经验的小白级读者,而且是那种不是很" 聪明"的超级小白,揣摩他们的心理,完全根据他们的口味编写,因此作为高手 的您如果对普及教育有兴趣的话,欢迎

写给初学者:多线程系列(十一)——线程池(ThreadPool)

21.7 线程池 当然,这是面向初学者的,是面向第一次接触到线程概念的同学,高手们看见肯定会笑我,因为对高手来说太简单了,但我还是希望您能鼓励一下,如有批评指教,更是感激不尽. 说明:线程中用到了委托的概念,关于委托请参看委托的概念,有时间我会完整的贴出来. PS:文章是从word复制过来的,有些地方格式很复杂,设置起来太麻烦,还是截图吧.