04 2012 档案
摘要:刚开始用C#编程就开始考虑让弹出窗体唯一的情况。点击按钮,弹出窗体只显示一个,不重复显示。考虑了单例模式,但是使用中出现问题就没有继续弄下去。当时的问题是:窗体关闭之后,资源就被释放了,第4句判断的代码返回值为false,这样返回的from对象就会报错。让我很烦恼。1 private static FrmDrill aForm = null;2 public static FrmDrill Instance()3 {4 if (aForm == null)5 {6 aForm = ...
阅读全文
摘要:代理模式顾名思义是让别代替你去做一件事情。既然让别人代理当然别人需要你的信息了,不然怎么代理?具体做代理帮你完成了!比如你让别人帮你订购火车票,你得告诉别人你的姓名,身份证号码吧,现在实名制了吗!委托类似于代理模式!
阅读全文
摘要:希望实现窗体的可折叠!像ArcToolBox中的窗体一下,点击显示帮助,窗体显示,点击收缩,窗体折叠。窗体部件:Panel控件,CheckBox控件将Panel控件布置到窗体的右面,停靠在FormLoad事件中输入下面代码: panel1.Visible = false; this.Width = this.Width - panel1.Width;在checkBox的CheckedOnChange事件中输入下面代码:private void checkBox1_CheckedChanged(object sender, EventArgs e) { pan...
阅读全文
摘要:前一段时间分析了MapControl和PageLayoutControl同步的一些问题,自己也根据原来的思路做了一些工作,但是存在的一个很大的问题就是,对于多文档程序,获取axPageLayoutControl1.ActiveView.FocusMap直接传递给axMapControl1时屏幕刷新老是出问题。如果对axPageLayoutControl1中的MapFrame操作过于频繁还会出现“内存损坏”的报错。感觉应该是让axPageLayoutControl1和axMapControl1共用一个IMap出了问题。不能共用一个IMap,那就只能通过拷贝的方式了。查了兰小机的书,还真的这么..
阅读全文
摘要:给DataGridView更新数据源,采用手动方式,即首先设置手工添加不同的DataGridViewColumn。将各列DataPropertyName属性设置成数据源,就是数据库的列名或者对象名。dataGridView1.AutoGenerateColumns = false;DataGridViewComboBoxCell 设置的复杂一些,要设置下拉选项。参考http://technet.microsoft.com/zh-cn/library/ms404353DataGridViewComboBoxColumn assignedToColumn = new Dat...
阅读全文
摘要:SharpMap项目Web控件学习!想学习网络方面的开发,但是发现很多底层的东西知道的太少。何止是网络方面的知道的太少?对于GIS的基本知识,最简单的桌面GIS系统自己都没有做出来一个,何谈对于底层的理解?所以觉得有必要学习一下底层的知识,对于自己也是一种提高!SharpMap这个开源项目真的是很好的学习材料了!首先看看SharpMap的Web控件包含了三个文件:AjaxMap.js,AjaxMapControl.cs,AjaxMapControlDesigner.cs。AjaxMap.js顾名思义是Javascript脚本了,实现了富客户端的功能。AjaxMapControl.cs是控件的显
阅读全文
摘要:仅是一点考虑,不成熟也不足为借鉴?希望大家参与讨论。 在创建数据库的时候经常遇到实体之间存在继承关系。 对于简单的继承在处理的时候往往不考虑这一点,最常见的就是人员信息管理,以教学管理系统为例,并不抽象出人,而是直接将学生、教师作为不同的实体。同时也不区分出男人和女人。 然而在有些地方,不考虑实体间的继承关系则会带来信息的冗余。比如煤矿地质信息中钻孔、见煤点和夹矸三类数据之间存在着继承关系,钻孔数据具有坐标位置;煤矿设备设施管理数据库中采购设备信息(库存设备)与正在运行设备、检修设备、报废设备存在继承关系,而正在运行设备则具有空间位置信息。这是两类很典型的情况。后者更为复杂,设备存在...
阅读全文
摘要:今天希望用自己编的编辑模块编辑一下Geodatabase中的要素图层,因为属性编辑框用的是一个CommandClass所以自己以为应该没有问题,应该可以显示关联关系信息。但是点击几下要素都没有显示属性内容,点多了窗体就自动消失!很是莫名!难道是ArcEngine没封装好? 找了资料,原来是这样:DescriptionThe CLSID of thiscommandis:{A554ADBC-D0DD-469A-8A95-B4CEED0794C3}.This command works with the ToolbarControl, PageLayoutControland MapCont...
阅读全文
摘要:思考:事件是如何触发的?1.定义事件2.订阅方法,方法入链的过程。3. 传入参数到事件调用事件执行,此处触发事件。 以Button的Click事件为例,下面两句话很常见,一个是事件的订阅过程,一个是实现事件订阅的方法; button1.Click+=new System.EventHandler(button1_Click); private void button1_Click(object sender, EventArgs e){} 但是事件的触发Click(obj,e)很难能找到。其实这个有操作系统管理了,操作系统后台管理着一个循环,响应鼠标单击这样的消息,此时触发事件。 在...
阅读全文
摘要:MVC (Model-View-Controller)模式,即模型-视图-控制器模式,其核心思想是将整个程序代码分成相对独立而又能协同工作的3个组成部分,具体的功能如下:模型(Model):业务逻辑层。实现具体的业务逻辑、状态管理的功能。视图(View):表现层。就是与用户实现交互的页面,通常实现数据的输入和输出功能。控制器(Controller):控制层。起到控制整个业务流程的作用,实现View层跟Model层的协同工作。程序中经常遇到这样的情况:有两个集合(对象)A和B,两者通过抽象成为独立的实体,但是希望建立A和B之间的关系。处理方式可否理解为如下三种:1.将B作为参数传递到A中可以作为
阅读全文
摘要:《交互式计算机图形学》书中附带的示例程序:polygon.cView Code /* polygon modeler */#define MAX_POLYGONS 8#define MAX_VERTICES 10typedef int bool;#define TRUE 1#define FALSE 0#include <stdlib.h>#include <stdio.h>//#include <GL/glut.h>#ifdef __APPLE__#include <GLUT/glut.h>#else#include <GL/glut.h
阅读全文