文档章节

c#如何生成控件画棋盘的布局问题

我只是一只小小鸟
 我只是一只小小鸟
发布于 2014/12/10 13:43
字数 399
阅读 412
收藏 1

画一个8*8的棋盘,需要在窗体上生成64个图片框,当然你也可以采用GDI+直接在窗体上画图。当然我们今天讨论不是这个。如果采用手工的方法在窗体上拖控件,这样做是极不合理的。因为控件一旦太多,手工是很耗时和耗耐心的一个工作了。除此之外,如果我们画棋盘的话,这里面的图片框控件的大小和放置位置要很精确。这样才能做到美观和为其下棋的算法奠定一个位置标准。这样用手工的方式,就显得太让人头疼了。我们不妨采用代码生成控件的方式。

PictureBox[] Pb = new PictureBox[64];//构造棋盘用
 private void AddPictureBox()
        {
            int N = 0;
            for (int i = 0; i < 8; i++)//8
            {
                for (int j = 0; j < 8; j++)//8
                {
                    N = j + i * 8;
                    Pb[N] = new PictureBox();//从第一列由上而下依次编号0到63,共64个格子
                    Pb[N].Height = 70;//每个格子高度 宽度均为70
                    Pb[N].Width = 70;//
                    Pb[N].Top = i * 70 + 70;//起始坐标
                    Pb[N].Left = j * 70;//按行每次在窗体放置8个控件,然后在i+1;
                    if (i % 2 == j % 2)
                    {
                        Pb[N].BackColor = Color.Green;//灰白间隔效果
                    }
                    else
                    {
                        Pb[N].BackColor = Color.White;
                    }
                    this.Controls.Add(Pb[N]);//没有这个语句,控件是无法添加到窗体上的!
                }
            }


        }

里面的

this.Controls.Add(Pb[N]);是一句关键语句,因为Constrols里面的控件才会在this(本窗体)上显示。


© 著作权归作者所有

共有 人打赏支持
我只是一只小小鸟
粉丝 14
博文 102
码字总数 53116
作品 1
荆州
程序员
私信 提问
android验证码,自定义View画出验证码

将自定义的view放到布局文件中,每次打开这个acitivity的时候那个view都会画很多次。就是那个onDraw()会调用多次。原因我知道,是因为这个布局中还有其他的控件,而当画其他控件时会调整控件...

李远超
2012/04/06
1K
3
String:布局问题,模拟五子棋小游戏

package com.gc.action.baiduTest.game.mygame; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event......

520920
2018/11/22
17
0
怎样将CDockablePane里面的控件随着CDockablePane拉伸动态改变大小

C# Dev控件如何让Panel里面的窗体随着Panel大小改变 C# 小弟我用SplitContainer分割窗体,改变大小后,里面的控件的dock不会随之而变,请教为什么,多谢 C# flowlayoutpanel里面的没法随着窗...

开源BBS
2013/08/06
0
2
C# WinForm开发系列 - GDI+

UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也不能算是好程序。UI编程体现在两个方...

长征2号
2017/11/14
0
0
Android实现无序树形结构图,类似思维导图和级联分层图(无序,随机位置)

参考文章: 利用递归算法、堆栈打造一个android可擦除思维导图 用SurfaceView实现级联分层图(粗略篇) 效果图打头阵: 这些和亲戚关系图谱,或者思维导图类似,最近公司的医疗项目也用到了这个...

qq_27489007
2017/09/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

指针数组和数组指针的区别

这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。 指针数组:arr...

天王盖地虎626
26分钟前
0
0
Qt那些事0.0.18

今天要记一下Qt中的Resource。自我感觉理解的不错,但是还会难免有谬误,在日后有可能会更新,也有可能不会。 小声的念叨一句,女人心,海底针。 今天就直接跳过了关于QML在qrc文件中的介绍,...

Ev4n
35分钟前
1
0
深入解析js的作用域、预解析机制

虽然,ES6在我们工作中应用得越来越广泛,但是还是很多项目保留着ES5的写法,所以,今天,带着大家重新巩固下ES5下的作用域及预解析机制。 概念: 作用域:域,指的是一个空间、范围、区域,...

前端攻城老湿
37分钟前
0
0
Spring Cloud Feign - 声明式 REST Client

1、Feign是什么 声明式REST client,来自NetFlix。 允许你编写无实现代码调用REST services 替换RestTemplate(甚至更简单) Spring Cloud 为使用Feign提供了包装器 2、怎样使用Feign 对比:...

Benz001
43分钟前
3
0
前端、后端和全栈到底不该学什么

1、前言 在职业规划咨询过程中经常会被问到这样的问题: 老师,我是该深入钻研专精一门,走技术大牛路线,还是所有都要精通,做一个全栈工程师? 类似问题的变种还有,老师我是不是该30岁最迟...

前端攻城小牛
45分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部