C#
yongh701
这家伙很聪明,什么都没有留下
展开
-
【C#】计算器
利用C#编写一个计算器。如下图,能够完成基本的四则运算。当然这个程序甚至还不上Windows附件那个自带的多功能计算器。不过这个程序的逻辑还是非常值得思考的,首先你要考虑好用户按+ - * / =等运算符号、数字键之后计算器的状态记录问题。然后要防止多次按某一个键的问题。比如小数点.就不应该让用户在输入一个数的时候键入两次。最后,还要弄两个数组,一个存放用户在输入的数字,另原创 2015-11-22 11:44:13 · 32434 阅读 · 13 评论 -
【C#】按钮长按
如果在C#窗体,单纯点击按钮,之后将鼠标长时间放在这个按钮上,不放开,双击按钮默认产生的click事件是不会出现多次相应的。双击按钮默认产生的click事件只会在鼠标点击按钮,再松开按钮,这样才会执行其中的代码一次,无论你将点击之后,鼠标在按钮悬停多久,都不会相应的,会直到你松开未知。因此类此如下的按钮长按效果:你需要自己改写按钮本身具有的按下按钮与松开按钮事件,同时拉入C#的原创 2015-12-01 20:28:51 · 12828 阅读 · 1 评论 -
【C#】使用Windows身份验证连接Sql Server,ListView随窗体大小的变化而调节列宽
在《【C#】利用C#窗体与SQL Server的连接、Treeview制作SQL Server数据库查看器》(点击打开链接)中使用了一种比较常用,也比较规范的,用Sql Server身份认证登录数据库的方式。然而,有时候,做些小型工程并不需要如此地规范,因为Sql Server搞一个用户实在是在麻烦了,具体见《【SQL Server】用户的设置与授权、sa用户登录、查询一个数据库中有多少张表》(点原创 2016-01-05 10:56:47 · 3067 阅读 · 1 评论 -
【C#】窗体间互相传值
网上关于C#之间的窗体之间互相传值其实很坑的。主要有修改要被传递数值的窗体的构造函数,然而这种方法,如果你要做打开一个窗体,然后这个窗体输入完东西之后传递回去,根本就是不知道怎么实现。之后还有什么委托delegate事件event大法,这个虽然能够实现,但我表示自己看了老半天都没看懂这个C#神特性。比如如下的例子,在Form1点击“修改”按钮,将打开Form2,Form2中有一个文本框,输入完原创 2015-12-03 17:33:33 · 12901 阅读 · 0 评论 -
【C#】华南理工大学计算机考研复试题目
华南理工大学计算机考研复试,在34所408联考高校中比较特别,除去各个学校都存在的面试环节,对比于其它科目传统笔试,华南理工大学更加倾向于使用C#窗体的程序制作来进行面试复试,这与部分学校使用传统的C语言编写算法不同。华南理工大学计算机考研复试的工程量、深度堪比一个小型的软件项目。网上一直对此资料甚小,有也是部分同学的回忆版,草草地叙述一下题目,也写写简单编程思想。并没有一份详尽的资料。这对于原创 2016-01-06 15:50:27 · 17691 阅读 · 25 评论 -
【C#】ListView的使用,对Access数据库的增删改查
估计这类文章烂大街都是,然而,这个基础又经典的程序不仿一写再写。如下图,新建一个C#窗体程序之后,先在工程相应的运行目录中新建一个Access2003数据库:Access2003里面有一张如下图的user表,其中id是自增项,username与password皆为文本项。我们完成如下的一个程序,实现对这张表的增删改查。注意到,如果你在列表视图,也就是listview中没原创 2015-12-26 11:39:51 · 8172 阅读 · 2 评论 -
【C#】txt的读写
这个程序和《【C#】XML读写与dataGridView的使用》(点击打开链接)一个尿性,只是代码更加简单,因为C#对txt的读写基本上和Java一样,具体见《【Java】输入与输出与JDK1.5之后的新型字符串StringBuilder》(点击打开链接),直接一个FileStream与StreamReader/StreamWriter就足矣,但貌似自己还没有写过C#的文件流,也就在这里写写了。还原创 2017-04-28 09:50:56 · 6099 阅读 · 0 评论 -
【C#】读取txt、csv等二维表
程序要读文件,在实战中主要还是以二维表为主,类似下图这种:基本上除了掌握《【C#】txt的读写》(点击打开链接)的文件流的读写,还需要与《【C#】利用正则表达式判断输入是否为纯数字、容器类》(点击打开链接)灵活运用。本文将使用《【Java】一行代码读完记事本中的二维表》(点击打开链接)的思想,展示在C#如何读取这个的二维表,读入到Listview当中。首先是场景布置,没什么好说的,原创 2017-04-28 11:56:04 · 2916 阅读 · 0 评论 -
【C#】XML读写与dataGridView的使用
C#直接是自有包可以轻松对XML完成读写。下面用一个程序展示C#如何对XML进行读写。如下图所示,有一个窗体程序,可以读写XML。下面是写入XML功能的展示。下面是读XML的展示,并且修改之后再写入:具体制作步骤如下:一、场景布置如图。主要是在Form中布置了2个Button与1个dataGridView,一改《【C#】ListView的使用,对Access数据原创 2017-04-25 20:30:42 · 13785 阅读 · 8 评论 -
【C#】提示文本
在C#窗体中不宜采取如下图,以类似网页的placeholder形式展示提示文字实在不可取:C#窗体中没有像HTML5中封装有placeholder的属性。如果要整这个替换文本,难免在这个窗体的代码,每次涉及这个输入框,都要判断当前这个对话框存放的是否是替换文本,这样会对以后的编程造成很大的负担。其实对于窗体的提示,更多应该采用,类似于HTML中alt="",title=""这种原创 2015-12-15 20:56:18 · 3053 阅读 · 1 评论 -
【C#】vs补全接口函数的做法
在编程语言都规定,如果你继承了某个接口,你基本要实现你这个接口里面的所有方法,对于非抽象类接口,还必须实现接口中的所有方法。一条一条接口的方法来重写,尤其对于接口中的方法照抄下来,即使复制粘贴也很烦,不过VS这个IDE注定有补全接口函数的做法。具体是涂黑你继承接口的名字,按下shift+alt+F10,选择“实现接口”,VS就会为你定义的继承接口的新类,将这个接口里面所有方法照抄下来,非常原创 2017-09-15 16:37:06 · 3120 阅读 · 0 评论 -
【C#】Timer、窗体大小和屏幕大小
这也是很简单的事情,窗体大小能取就能用,屏幕大小用Screen.PrimaryScreen.Bounds.Width/Height;。在C#中的Timer其实与VB.NET的Timer差不多,《【Visual Basic】计时器与窗体屏幕尺寸的取法》(点击打开链接),下面用一个小例子还说明这个问题:如图,在一个窗体中有两个按钮,点击可以之后,窗体就开始横向增加大小,增大到当前屏幕大小的原创 2015-12-01 17:09:06 · 2514 阅读 · 0 评论 -
【C#】利用C#窗体与SQL Server的连接、Treeview制作SQL Server数据库查看器
实质上,本文的中心还是在讨论C#对SQL Server的增删改查,只是这次创新一点,配合Treeview制作SQL Server数据库查看器。具体如下图:根据SQL Server,Test数据库中的表的结构与内容:编写一个对Test数据库的数据库查看器,点击相应的表则读取该表的内容:其中上述的程序,点击根节点“Test数据库”是无效的,点击其子节点,则右方的组框改成原创 2015-12-31 12:28:49 · 8073 阅读 · 0 评论 -
【C#】窗体透明度、ListBox的增删改查
这两个都是C#窗体的基础内容,下面用一个简单的例子说明这个问题,注意ListBox不是ListView就好。如下图:有两个按钮可以调节窗体的透明度,而在上方,如果ListBox的项被选中,则会呈现在文本框之中,可供修改,没有选中ListBox的项,或者选中之后,点击ListBox的空白处,则是为ListBox添加项的状态,同时可以删除相应的项。并且无论是在添加还是在删除状态,都是要原创 2015-11-30 21:01:37 · 4287 阅读 · 0 评论 -
【C#】VS2010的Helloworld,输入输出、条件、循环、数组、类
C#是微软公司自己的东西。因此直接用Visual Studio直接来写就好。与Java比较类似,但C#来继承了C++的命名空间、运算符重载等东西。C#没有包的概念,通过命名空间实现Java的包。C#能写窗体、ASP.NET甚至还有传说中的Unity3D。VS的下载、安装这里就不介绍了,这东西网上一搜一大堆,安装基本上可以下一步按到低,什么环境变量都不用配置。要写C#,打开VS2010之后,文件原创 2015-11-17 09:41:25 · 3813 阅读 · 0 评论 -
【C#】利用正则表达式判断输入是否为纯数字、容器类
容器类、正则表达式在几乎所有编程语言都存在的东西。很常用也很使用。下面用如下的一个控制台小程序说明C#的正则表达式与容器类的应用。开始直接输出在C#定义好的数据字典Dictionary,这就是Java与Python的HashMap之后定义一个存int的List,让用户无限输入这个List的元素,输入到#则停止输入,在输入的过程中遇到不是纯输入,则拒绝这个输入。遍历这个List输出,之后原创 2015-11-17 16:53:15 · 5769 阅读 · 0 评论 -
【C#】洗牌算法、利用delegate自定义list的sort排序方法、summary注释
当然,这篇文章主要介绍怎么自定义C#中一个List的排序。而不是介绍什么delegate深奥的概念。解决的问题主要是,student是一个含有int num,int class_num,string name三个类成员的类假设有一个存放student类的数组,存着3个student元素,要按照int class_num与string name来排序如下图:具体的代码如下:u原创 2015-11-18 10:17:14 · 4788 阅读 · 0 评论 -
【C#】利用System.IO中的File类中的ReadAllText与WriteAllText输入输出小文件
当然对于一些大文件的读写还是建议用回传统的文件输入输出流,但是对于一些简单的小文件输入输出直接利用ReadAllText与WriteAllText能够省下不少的代码。你不用判断这个文件是否存在,不用在输入输出完毕处理文件输入输出流,一句代码就能够完事。下面用一个小程序来说明这个例子。如下图,在FileReadWrite.exe中有一个文本框,用户可以在其中输入内容,如果输入内容有所改变,则在关原创 2015-11-19 16:45:49 · 21358 阅读 · 2 评论 -
【C#】简单窗体程序,判断是否闰年,禁止窗体调整大小,关闭窗体前的判断
利用VS2010的C#.NET能够很简单创建一个窗体。同时可以很轻松地为这个窗体布局,添加事件,下面用一个简单的窗体程序,判断是否闰年,来说明这个问题。同时加一个关闭事件,在用户关闭窗体之前弹出对话框询问用户是否关闭此窗体?如下图:具体做法如下。1、打开VS2010之后,文件->新建->项目->选择其它语言中的->Visual C# ->Windows->Windows 窗体应用程原创 2015-11-19 11:08:16 · 7248 阅读 · 3 评论 -
【C#】向导式窗体
C#窗体的向导式窗口,不像VC6中《【mfc】利用单一对话框内的分页技术实现向导功能》(点击打开链接)的是用MDI窗体来做的,而是用一个Panel中镶嵌多个窗体的方式来完成的。不知道为何网上对此的资料甚少,可能对这种向导式窗体的需求没这么大吧?如下的一个程序,设置了3页,一直按到最后,实现3个对话框的相加。这样能够有效地减少这个窗体占用屏幕的大小。制作过程如下:1、首先上一张解原创 2015-12-28 20:09:19 · 6149 阅读 · 0 评论 -
【C#】标签页
标签页与《【C#】向导式窗体》(点击打开链接)一样,是一个能够极大地节省窗体空间的神器。而且来到C#中,不像VC6中的《【mfc】标签页》(点击打开链接)复杂。下面用如下一个极其简单的窗体,说明C#标签页,也就是TabControl控件怎么使用。在窗体程序一开始,输出有多少个标签页,之后每切换一次标签页,都会在日志信息下的TextBox有所输出。窗体布局如下,实质上,那个日志信原创 2015-12-29 10:27:28 · 6252 阅读 · 5 评论 -
【C#】菜单
菜单栏是窗体程序中,一个很重要的组件,下面就利用一个小程序,说明C#窗体程序中如何使用菜单。如下图,实现一个很简单的,在各类文本编辑器中都很常见的替换功能。注意到,无论是菜单栏的工具 或者是 替换功能,都是配有快捷键的。选择 替换功能弹出一个新的模态对话框,让用户输入东西。具体制作过程如下:1、首先贴上本解决方案的文件组织树,其中Intent.cs是用来在窗体与窗体之间原创 2015-12-15 11:12:51 · 4864 阅读 · 0 评论 -
【C#】文件选择对话框OpenFileDialog与下列列表ComboBox
主要用如下的一个小例子,说明C#窗体中文件选择对话框OpenFileDialog与下列列表ComboBox的应用,点击“选择文件”按钮,就可以打开文件选择对话框OpenFileDialog,无论是多选文件与单选文件,都能够将选择的内容添加到下列列表ComboBox之中。同时,一开始,下列列表ComboBox是“无”的状态,在文件选择对话框OpenFileDialog选择的文件夹由于Windows本原创 2015-11-29 10:47:24 · 4877 阅读 · 0 评论 -
【C#】用组件的Anchor属性解决最大化组件的缩放问题
如果不对组件进行任何设置,同时也不禁用C#窗体的最大化按钮,设置Form1不可调整,在Form1最大化之后,默认是如下图的效果:这显然不符合大多数的审美,其实只要全选所有组件,不包含窗体,设置其所有组件的Anchor属性就好。将Top,Left改成Top,Left,Right就好,就是点一点下图的右端的长方形就好。这样设置的话得到的效果如下图:其实这已经足够原创 2015-11-29 11:46:47 · 11765 阅读 · 0 评论 -
【C#】枚举类型Enum与状态设计模式
一、枚举类型Enum的基本定义与使用本来,C#的枚举类型没什么好说的,就是刚学编程的都会,甚至还会问,这废东西还不如写一大堆常量,拿回C++那套:public const int A = 0;public const int B = 1;public const int C = 2;不过确实,枚举类型就是由C++传统这套拿过来的。先不说它有什么好处,至少数组化、结构体化、类化之原创 2017-09-15 18:38:37 · 2822 阅读 · 0 评论