- 博客(45)
- 资源 (1)
- 收藏
- 关注
原创 C# 利用委托实现窗体间传值
图文详解C#窗体间传递数据——窗口1若干TextBox中的数据,传递到窗口2中的ListView功能描述:主窗体有一ListView控件和一“添加”Button控件。点击“添加”Button弹出一窗口,此窗口有若干TextBox,输入数据后,点击“确定”Button,数据回传到主窗体的ListView中。核心知识:委托实现步骤:第一步:新建两个窗体,各自
2017-03-06 12:08:30 6554 1
原创 C# 矩阵变换Matrix
1、Matrix matrix = new Matrix();2、matrix.Translate( offsetX, offsetY ); //Where offset is the new location3、path.Transform( matrix ); //Transform the path4、redraw the path via Invalidate()
2017-02-21 15:22:50 14184
原创 C# 颜色
两种方式,一种是设十六进制,一种是rgb;this.Emfo_Fas.ForeColor = System.Drawing.Color.FromName("#ff0000");this.Emfo_Fas.ForeColor = System.Drawing.Color.FromArgb(255,0,0);
2017-02-15 09:13:57 948
原创 C# 控件知识补充
1、panel容器(1)边框默认宽度为1pixel,即该控件对应的工作区的矩形区域ClientRectangle比控件设定值上、下、左、右边界各小1pixel 。ClientRectangle.Width=panel.width-1-1;ClientRectangle.Height=panel.Height-1-1;(2)滚动条的默认高度为17pixel,即当出现滚动条时,
2017-02-11 18:20:33 494
原创 C# GDI+ 绘图基础知识(1)
C#绘图窗口最小化图画消失问题解决方法:在学习C#绘图过程中发现,在窗口Form上画图,当窗口最小化或者按Alt建时,Form上的图画都会消失,原来这是因为最小化后还原时窗体要重绘,图画被覆盖消失,解决方法有两个:一是在窗口Form的Paint事件中重新绘制图画;二是把图画在位图上,然后把位图赋给能显示图片的窗口或控件上。一. 在窗口Form的Paint事件中重新绘制图画
2017-02-09 09:04:33 1303 1
转载 字典教程精简版
一、定义字典 Set d = CreateObject("Scripting.Dictionary")二、呼之即来,挥之即去d("张三“)=1 '相当于给字典赋值,张三过来(没有就生成)拿个1站一边去d("李四”)=2 '相当于给字典赋值,李四过来(没有就生成)拿个2站一边去d("李四”)=3 '相当于改变值,字典中已经有李四了,李四跑过来,丢
2016-12-24 20:21:07 534
原创 获取当前的Excel版本内置的工具栏的名称和类型
获取当前的Excel版本内置的工具栏的名称和类型 Dim oCmdBar As CommandBar Dim i, temp [a1:c1] = Array("在集合中引用的名称", "当前系统的菜单名称", "类型") i = 2 For Each oCmdBar In Application.CommandBars Selec
2016-12-07 10:43:44 817
原创 sub 与 function 的区别
sub称为过程, function称为函数,他们之间的唯一区别是function有返回值。完全可以把sub写成function,只要不用function的返回值就可以了。C语言就只有函数而没有过程,因此一般情况下都可以用function来代替sub。但这两段代码对于excel的运行位置不同。sub会出现在宏里,而function会出现在插入函数中。Function Sqr_Fu
2016-11-19 15:45:29 9466
原创 Excel VBA 常用操作一
1、查找算法,函数返回整型变量Function Searchcheci(checi As String) As Integer '获取查找内容所在的单元格 Set c = Sheets("表名称").Range("C3:C200").Find(checi, lookat:=xlWhole) '获取单元格的行数/列数 Searchcheci = c.rowE
2016-11-19 09:39:12 732
转载 回溯算法
理论辅助:回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。用回溯算法解决问题的一般步骤为:1、定义一个解空间,它包含问题的解。2、利用适于搜索的方法组织解空间。3、利用深度优先法搜索解空间。4、利用限界函数避免移动到不可能产生解的子空间。问题的解空间通常是在搜索问题的
2016-11-05 09:56:00 1510
转载 背包问题
背包问题很有意思,同时也富有挑战性。首先看一下这个问题的完整描述:问题假定背包的最大容量为W,N件物品,每件物品都有自己的价值和重量,将物品放入背包中使得背包内物品的总价值最大。背包问题wiki可以想象这样一个场景——小偷在屋子里偷东西,他带着一只背包。屋子里物品数量有限——每件物品都具有一定的重量和价值——珠宝重量轻但价值高,桌子重但价值低。最重要的是小偷
2016-11-03 20:33:52 279
原创 背包问题
背包问题是应用动态规划的典型例子。解题思路:将背包容量进行分解0-N,步长为1;将物品进行编号1-M;不放物品时,则任意一容量下的最大价值都是0;从第一件物品开始,检查各容量是否可以装下该物品,若可以装下则检查剩余容量则检查剩余容量对应的最大价值,然后将最新获取的最大价值与前面同容量下获取的最大价值进行比较,将较大者作为对应循环位置的最大价值;不断循环直至所有物品均进行了如上的检测
2016-11-03 20:30:33 284
原创 动态规划(解公司外包成本问题)
基础算法系列总结:动态规划(解公司外包成本问题)作者:IqqIqqIqqIqq 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,
2016-11-03 20:15:22 641
转载 【坐在马桶上看算法】算法7:Dijkstra最短路算法
2014-04-01 09:17:52标签:超简单Dijkstra实现 Dijkstra最短路算法C语言实现 上周我们介绍了神奇的只有五行的Floyd最短路算法,它可以方便的求得任意两点的最短路径,这称为“多源最短路”。本周来来介绍指定一个点(源点)到其余各个顶点的最短路径,也叫做“单源最短路径”。例如求下图中的1号顶点到2、3、4、5、6号顶点的最短路径。
2016-11-03 20:05:44 378
转载 【坐在马桶上看算法】算法6:只有五行的Floyd最短路算法
2014-03-25 09:47:22标签:超简单Floyd最短路算法 Floyd最短路 超简单Floyd算法C语言实现 暑假,小哼准备去一些城市旅游。有些城市之间有公路,有些城市之间则没有,如下图。为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程。 上图中有4个城市8条公路,公路
2016-11-03 20:04:55 620
转载 C#简易截图工具源码下载
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms; namespace 简易截图工具{ publi
2016-09-05 19:48:04 798
原创 C#关于For循环break,goto,return的应用
break是循环结束执行,执行循环体后面的代码,用于跳出当前循环,从当前位置跳出,并且不再执行当前循环里的内容;continue是跳过本次循环未执行的代码,继续执行下一次循环。goto是跳到指定的指令去,你指哪,他跳到哪。return是函数返回,如果循环在Main函数中,那么程序一般就结束了。for (int i = 0; i {for (int j = 0; j 第二层循环
2016-08-23 20:54:07 6390
原创 C# 序列化(保存于读取)
.NET框架提供了两种串行化的方式:1、是使用BinaryFormatter进行串行化;2、使用SoapFormatter进行串行化;3、使用XmlSerializer进行串行化。第一种方式提供了一个简单的二进制数据流以及某些附加的类型信息,而第二种将数据流格式化为XML存储;第三种其实和第二种差不多也是XML的格式存储,只不过比第二种的XML格式要简化很多(去掉了SOAP特有的额外信息)。
2016-08-21 11:47:37 3815
原创 C# return使用方法
函数的调用是利用栈来实现的,函数调用处保存现场,把数据入栈,CPU转到被调用函数处执行,执行到return语句,把数据出栈,CPU从调用出开始继续执行。return后面可以接其他东西,也可以不接。如果接东西了,那么就是返回一个值,那么那个函数就是有返回值的函数。如果什么都不接,就表示函数结束,返回调用处。public void test(int a){if (a
2016-08-15 10:19:29 6016
原创 List<PointF> pointsA转换为pointsF[]类型的数组
定义的list: List pointsA = new List(); pointsA.Add(new PointF (1,1)); pointsA.Add(new PointF (1,1.5F)); pointsA.Add(new PointF (2,2)); poi
2016-08-07 18:37:35 3566
转载 C#中键值对类型Hashtable与Dictionary比较和相关用法
最近在使用C#中的Hashtable与Dictionary的时候,想知道其区别,通过查找网络相关博客资料,作出下列总结。Hashtable与Dictionary虽然都是作为键值对的载体,但是采用的是不同的数据结构。就像Java中的ArrayList与LinkList,虽然都是实现了List接口作为集合载体,但是其内部结构是不一样的,ArrayList是通过数组实现的,LinkList是通过对象
2016-08-07 11:59:37 733
原创 C# 创建、载入XML文件学习笔记
1、C#创建XML(1)创建XML文档对象XmlDocument doc = new XmlDocument();(2)创建第一个行描述信息,并且添加到doc文档中XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null); doc.AppendChild(dec);(3)添加一级节点,创建根节点,将
2016-07-28 11:26:09 282
转载 C#中对XML文件进行新建、查找、插入、修改、保存等操作
内容包括:新建XML文件;在XML文件中查找单个节点或多个节点;并在该节点下添加子节点;同时为添加的子节点赋值 (例一);得到某个节点下的符合条件的所有子节点,并对这些子节点进行操作(例二);并介绍了如何保存XML文件(见附注)包含头文件;using System.Xml;(例一)private XmlDocument NewXmlFile(PlanningData
2016-07-26 14:07:47 2917
转载 VBA 常用的VBA短句(带注释)
带解释的 VBA 短句[VBA起步]常用的、带解释的 VBA 短句[A65536].End(xlUp).Row 'A列末行向上第一个有值的行数[A1].End(xlDown).Row 'A列首行向下第一个有值之行数[IV1].End(xlToLeft).
2016-07-26 14:03:33 8310
转载 VBA CurrentRegion属性示例
CurrentRegion属性与UsedRange属性是我们在VBA编程中经常用到的2个极为重要的属性,它们有相同之处,也有不同处。下面先介绍CurrentRegion属性。 CurrentRegion属性是一个非常有用的属性,返回活动单元格所在的周围由空行和空列组成的单元格区域(即通常所说的当前区域),如图1所示。该区域为活动单元格附近不为空的单元格范围,该范围截止区域为空
2016-07-26 14:02:46 5112
转载 C#TreeView读取Xml,TreeView导出到Xml
实现功能有1.根据Xml生成TreeView2.双击修改节点3.右键添加子节点或添加要节点4.右键删除当前选择的节点5.将修改后的TreeView重新生成Xml文档源码下载 TreeLoadXml.rar (24.14 KB, 下载次数: 627) 只有注册会员可以下载其实这个主要是实现 了Xml生成TreeView,然后再根据TreeView生成Xml的过程对我
2016-07-26 14:02:03 6719 3
转载 C# 动态操作DataTable(新增行、列、查询行、列等)
方法一:动态创建一个DataTable ,并为其添加数据public void CreateTable() { //创建表 DataTable dt = new DataTable(); //1、添加列 dt.Columns.Add("Nam
2016-07-26 13:59:08 626
转载 C#中的DataSet,DataTable,DataView
//首先创建一个DataTable对象DataTable dt = new DataTable();//new DataColumn创建了新的一列,并给这列起个列名,Add方法则是把这个新创建的列加入到创建的dt对象中dt.Columns.Add(new DataColumn("姓名"));dt.Columns.Add(new DataColumn("性别"));
2016-07-26 13:57:28 955
转载 C# 重写空间 Onpaint事件
我们无法直接在窗体的代码中重写控件的OnPaint事件,只能重写窗体的OnPaint事件。重写控件的OnPaint事件,必须创建一个新的控件。这个控件继承Windows的控件,然后在创建的控件中重写控件的OnPaint事件。以PictureBox为例://定义一个新的控件,继承PictureBox控件public cl
2016-07-26 13:54:25 1650 1
转载 C#Graphics类绘制直线与拖动
Grapgics对象类似画布或者一张纸,供其他对象在上面作图。具体用Grapgics类绘制一条直线的方法如下:Graphics g; Pen newPen = new Pen(Color.Yellow);//定义一个画笔,黄色 Point startP = new Point(20,20);//线的起始点坐标 Point endP =
2016-07-26 13:52:50 2572
转载 C# 在滚动窗口中绘图(滚动条原理)
窗体的大小由窗体的Size属性确定,这个大小包括了窗体的标题栏和边框。而窗体中用于显示客户文档的区域称为工作区(ClientRectangle),其大小用窗体的ClientSize 属性表示(如图17-20所示)。 在图17-20中,窗体的大小为308×234像素,其中标题栏的宽度为30像素,边框的宽度为4像素,所以工作区的大小为300×200像素。如果我们要在300×20
2016-07-26 13:50:01 8180 1
转载 C# 动态生成的label添加click事件
//按钮点击事件 private void button_Click(object sender, EventArgs e){ Label lb=new Label(); lb.name="lb"; lb.Click += new System.EventHandler(lb_Click); }//private void
2016-07-26 13:49:14 3998
转载 C#中多个label调用同一单击事件,怎么分辨是通过哪个label调用的
传入参数sender 是点击的label对象,根据它便可以找出Name等信息区别, Example: private void label1_Click(object sender, EventArgs e) { Label label = (Label)sender; MessageBox.Show(lab
2016-07-26 13:48:26 3310
原创 C# 类
如题 假如我创佳一个自定义类型 Student类型 如下public struct Student{ public string Name; public int Age;}现在我要创建一个变长的Student类型的数组并给他赋值 如何写? 我写的老提示我没有new 或者没有指明数组大小 可是我要的就是变长的数组啊 ,因为有多少个同学是变化的2009-05-1
2016-07-26 13:47:27 370
转载 C# Graphic - DrawLine - draw line and move it
public class LineMover : Form{ public LineMover() { this.DoubleBuffered = true; this.Paint += new PaintEventHandler(LineMover_Paint); this.MouseMove += n
2016-07-26 13:46:31 1936
转载 Moving a drawn line with the mouse
I am trying to move a drawn line by grabbing it with the mouse.The line have already been drawn with Graphics.DrawLine(Pen P, Point A, Point B).There is absolutely no problems with
2016-07-26 13:45:49 326
转载 Graphics平移缩放旋转
【平移】private void btnTranslate_Click(object sender, EventArgs e) { Graphics graphics = this.CreateGraphics(); // 红色笔 Pen pen = new Pen(Colo
2016-07-26 13:44:56 1085
原创 C#手动创建Dataset并填充测试数据 修改DataSet数据方法
手段创建思路:将行加入表,将表加入DataSet;逆序进行:新建DataSet,再建DataTable,最后建立Row;将Row加入DataTable,再将DataTable加入DataSet。DataSet ds = new DataSet();//创建DataSet DataTable dt = new DataTable("Table");//创
2016-07-26 13:43:56 1971
转载 C# Winform学习--- 实现石头剪刀布的游戏
新建一个windows窗体程序,用数字1代表石头,用数字2代表剪刀,用数字3代表布,结果取玩家和电脑出拳之差,有三种结果 玩家赢: -1,2平手: 0玩家输: 其它值 新建3个类: 1)Computer.cs 电脑随机出拳 using System;using System.Collections.Generic;
2016-07-26 13:42:41 3929 1
原创 窗体间参数传递
A窗体:C# codepublic class FormA : Form{ //假若A中有一个DataGridView 名为 dgvList,在属性上将Modifier设成public private void button1_Click(object sender, EventArgs e)
2016-07-26 13:41:37 327
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人