存档

‘c#’ 分类的存档

多行编辑工具工具 v1.0

2010年3月2日 奇奇 没有评论

    本工具主要是为了方便多行批量编辑所写的.可以直接把excel中整列转换成单独一行,行于行之间添加分隔符.\r\n    软件本身没啥技术含量,就图个方便.奇奇写这个工具为的就是学校群发短信时编辑手机号码.如需要新功能或有问题可以访问奇奇的blog与作者联系.

其他就不多说了,不一定所有人都有用.

开发环境 vs2008sp1 + win7x64

开发语言 c#

下载地址 http://www.qiqid.com/qiqisoft/Txtedit.zip

分类: c#, 作品 标签:

C#颜色和名称样式对照表

2010年2月27日 奇奇 没有评论

转帖:   
      这篇文章来来源于C# Color Table,这里是我翻译的中文版本,其中已经加上了我的一些理解和注释。翻译这篇文章的原因是我在写C#程序的时候发现,C#自带的颜色种类极多(详见下表),如果没有直观的对照关系的话,很难从那么多的名字中挑选出中意的颜色。

以下的颜色代码取自HTML规范,这些颜色的名称对应于KnownColor的属性。比如,你可以用以下代码来创建一个Color对象:

Color c = Color.FromKnownColor(KnownColor.colorname);

所有的colorname在后面的表格中一一列出,这些颜色对应的RGB值列在名字的后面,你可以使用FromArgb方法来创建Color对象。以下两行实际上创建了同一种颜色:

Color c1 = Color.FromArgb(32,178,170);
Color c2 = Color.FromKnownColor(KnownColor.LightSeaGreen);

在下面这张表中,我严格依照颜色的RGB值设置对应颜色的显示。你所看到的真实效果依赖于浏览器是否准确处理了对应24位色的颜色显示(一些浏览器可能将某些颜色映射成“最接近的网页调色板颜色”),显示器的调节或者你显卡的校正值。因此显示效果会略有不同。

补充:

还有一些获取颜色的方式:

Color c1 = Color.AliceBlue;            //Color类自带的静态颜色对象
Color c2 = Color.FromArgb(0x20B2AA);   //网页里面提取的颜色(原格式为#20B2AA)

 

C#颜色和名称对照表

Color.AliceBlue
240,248,255
Color.LightSalmon
255,160,122
Color.AntiqueWhite
250,235,215
Color.LightSeaGreen
32,178,170
Color.Aqua
0,255,255
Color.LightSkyBlue
135,206,250
Color.Aquamarine
127,255,212
Color.LightSlateGray
119,136,153
Color.Azure
240,255,255
Color.LightSteelBlue
176,196,222
Color.Beige
245,245,220
Color.LightYellow
255,255,224
Color.Bisque
255,228,196
Color.Lime
0,255,0
Color.Black
0,0,0
Color.LimeGreen
50,205,50
Color.BlanchedAlmond
255,255,205
Color.Linen
250,240,230
Color.Blue
0,0,255
Color.Magenta
255,0,255
Color.BlueViolet
138,43,226
Color.Maroon
128,0,0
Color.Brown
165,42,42
Color.MediumAquamarine
102,205,170
Color.BurlyWood
222,184,135
Color.MediumBlue
0,0,205
Color.CadetBlue
95,158,160
Color.MediumOrchid
186,85,211
Color.Chartreuse
127,255,0
Color.MediumPurple
147,112,219
Color.Chocolate
210,105,30
Color.MediumSeaGreen
60,179,113
Color.Coral
255,127,80
Color.MediumSlateBlue
123,104,238
Color.CornflowerBlue
100,149,237
Color.MediumSpringGreen
0,250,154
Color.Cornsilk
255,248,220
Color.MediumTurquoise
72,209,204
Color.Crimson
220,20,60
Color.MediumVioletRed
199,21,112
Color.Cyan
0,255,255
Color.MidnightBlue
25,25,112
Color.DarkBlue
0,0,139
Color.MintCream
245,255,250
Color.DarkCyan
0,139,139
Color.MistyRose
255,228,225
Color.DarkGoldenrod
184,134,11
Color.Moccasin
255,228,181
Color.DarkGray
169,169,169
Color.NavajoWhite
255,222,173
Color.DarkGreen
0,100,0
Color.Navy
0,0,128
Color.DarkKhaki
189,183,107
Color.OldLace
253,245,230
Color.DarkMagena
139,0,139
Color.Olive
128,128,0
Color.DarkOliveGreen
85,107,47
Color.OliveDrab
107,142,45
Color.DarkOrange
255,140,0
Color.Orange
255,165,0
Color.DarkOrchid
153,50,204
Color.OrangeRed
255,69,0
Color.DarkRed
139,0,0
Color.Orchid
218,112,214
Color.DarkSalmon
233,150,122
Color.PaleGoldenrod
238,232,170
Color.DarkSeaGreen
143,188,143
Color.PaleGreen
152,251,152
Color.DarkSlateBlue
72,61,139
Color.PaleTurquoise
175,238,238
Color.DarkSlateGray
40,79,79
Color.PaleVioletRed
219,112,147
Color.DarkTurquoise
0,206,209
Color.PapayaWhip
255,239,213
Color.DarkViolet
148,0,211
Color.PeachPuff
255,218,155
Color.DeepPink
255,20,147
Color.Peru
205,133,63
Color.DeepSkyBlue
0,191,255
Color.Pink
255,192,203
Color.DimGray
105,105,105
Color.Plum
221,160,221
Color.DodgerBlue
30,144,255
Color.PowderBlue
176,224,230
Color.Firebrick
178,34,34
Color.Purple
128,0,128
Color.FloralWhite
255,250,240
Color.Red
255,0,0
Color.ForestGreen
34,139,34
Color.RosyBrown
188,143,143
Color.Fuschia
255,0,255
Color.RoyalBlue
65,105,225
Color.Gainsboro
220,220,220
Color.SaddleBrown
139,69,19
Color.GhostWhite
248,248,255
Color.Salmon
250,128,114
Color.Gold
255,215,0
Color.SandyBrown
244,164,96
Color.Goldenrod
218,165,32
Color.SeaGreen
46,139,87
Color.Gray
128,128,128
Color.Seashell
255,245,238
Color.Green
0,128,0
Color.Sienna
160,82,45
Color.GreenYellow
173,255,47
Color.Silver
192,192,192
Color.Honeydew
240,255,240
Color.SkyBlue
135,206,235
Color.HotPink
255,105,180
Color.SlateBlue
106,90,205
Color.IndianRed
205,92,92
Color.SlateGray
112,128,144
Color.Indigo
75,0,130
Color.Snow
255,250,250
Color.Ivory
255,240,240
Color.SpringGreen
0,255,127
Color.Khaki
240,230,140
Color.SteelBlue
70,130,180
Color.Lavender
230,230,250
Color.Tan
210,180,140
Color.LavenderBlush
255,240,245
Color.Teal
0,128,128
Color.LawnGreen
124,252,0
Color.Thistle
216,191,216
Color.LemonChiffon
255,250,205
Color.Tomato
253,99,71
Color.LightBlue
173,216,230
Color.Turquoise
64,224,208
Color.LightCoral
240,128,128
Color.Violet
238,130,238
Color.LightCyan
224,255,255
Color.Wheat
245,222,179
Color.LightGoldenrodYellow
250,250,210
Color.White
255,255,255
Color.LightGreen
144,238,144
Color.WhiteSmoke
245,245,245
Color.LightGray
211,211,211
Color.Yellow
255,255,0
Color.LightPink
255,182,193
Color.YellowGreen
154,205,50
分类: c# 标签:

C#符号

2010年2月27日 奇奇 没有评论

C# 提供了 Java 支持的所有可用运算符,如下表所示。在表的末尾,您将看到一些新的运算符,它们可以在 C# 中使用而不可以在 Java 中使用:

运算符
类别 符号
 

[Text]

 

[Text]

 

一元

 

++ — + – ! ~ ()

 

乘法

 

* / %

 

加法

 

+ -

 

移位

 

<< >>

 

关系

 

< > <= >= instanceof

 

相等

 

== !=

 

逻辑与

 

&

 

逻辑异或

 

^

 

逻辑或

 

|

 

条件与

 

&&

 

条件或

 

||

 

条件

 

? :

 

赋值

 

= *= /= %= += -= <<= >>= &= ^= |=

 

操作数的类型

 

typeof

 

操作数的大小

 

sizeof

 

执行溢出检查

 

checked

 

取消溢出检查

 

unchecked

唯一不可以在 C# 中使用的 Java 运算符是 >>> 移位运算符。之所以在 Java 中存在此运算符,是因为该语言中缺乏无符号变量,例如在需要右移位以在最高有效比特位插入 1 时。

然而,C# 支持无符号变量,因而 C# 只需要标准 >> 运算符。取决于操作数是否带有符号,此运算符产生不同的结果。右移一个无符号数会在最高有效比特位插入 0,而右移一个有符号数则会复制前面的最高有效比特位。

checked 和 unchecked 运算符

如果对于分配给正在使用的数据类型的比特数来说结果太大,则算术运算会产生溢出。对于特定的整数算术运算,通过使用 checked 和 unchecked 关键字,可以检查或忽略这样的溢出。如果表达式是一个使用 checked 的常量表达式,则会在编译时产生错误。

下面这个简单的示例说明了这两个运算符的用法

using System;public class Class1{ public static void Main(string[] args) { short a = 10000, b = 10000; short d = unchecked((short)(10000*10000)); Console.WriteLine(d= + d); short c = (short)(a*b); Console.WriteLine(c= + c); short e = checked((short)(a*b)); Console.WriteLine(e= + e); }}

在这段代码中,unchecked 运算符避免了发生编译时错误,否则,下面的语句会产生错误:

short d = unchecked((short)(10000*10000));

下一个表达式在默认情况下是不检查的,因此值会悄悄溢出:

short c = (short)(a*b);

我们可以使用 checked 运算符来强制检查该表达式是否会在运行时溢出:

short e = checked((short)(a*b));

当运行时,赋第一个值给 d & c 会以值 -7936 悄悄溢出,但是当试图使用 checked() 以获得 e 的乘积值时,程序会引发 System.OverflowException 异常。

注意:另外,通过使用命令行编译器开关 (/checked) 或者直接在Visual Studio 中基于每个项目使用此开关,您还可以控制是否检查代码块中的算术溢出。

is 运算符

此运算符确定左边对象的类型是否与右边指定的类型相匹配:

if (objReference is SomeClass) …

在下面的示例中,CheckType() 方法打印一条消息,描述传递给它的参数的类型:

using System;public class ShowTypes{ public static void Main(string[] args) { CheckType (5); CheckType (10f); CheckType (“Hello”); } private static void CheckType (object obj) { if (obj is int) { Console.WriteLine(“Integer parameter”); } else if (obj is float) { Console.WriteLine(“Float parameter”); } else if (obj is string) { Console.WriteLine(“String parameter”); } }}

运行此程序,输出如下:

Integer parameterFloat parameterString parameter

sizeof 运算符

sizeof 运算符以指定值类型的字节数返回其大小,如下面的代码所示:

using System;public class Size{ public static void Main() { unsafe { Console.WriteLine(“The size of short is {0}.”, sizeof(short)); Console.WriteLine(“The size of int is {0}.”, sizeof(int)); Console.WriteLine(“The size of double is {0}.”,sizeof(double)); } }}

注意,包含 sizeof 运算符的代码放在一个不安全的块中。这是因为 sizeof 运算符被认为是一个不安全的运算符(由于它直接访问内存)。有关不安全代码的更多信息,请参见安全代码和不安全代码

typeof 和 GetType

typeof 运算符返回作为 System.Type 对象传递给它的类的类型。GetType() 方法是相关的,并且返回类或异常的运行时类型。typeof 和 GetType() 都可以与反射一起使用,以动态地查找关于对象的信息,如下面的示例所示:

using System;using System.Reflection;public class Customer{ string name; public string Name { set { name = value; } get { return name; } }}public class TypeTest{ public static void Main() { Type typeObj = typeof(Customer); Console.WriteLine(“The Class name is {0}”, typeObj.FullName); // Or use the GetType() method: //Customer obj = new Customer(); //Type typeObj = obj.GetType(); Console.WriteLine(“”nThe Class Members”n=================”n “); MemberInfo[] class_members = typeObj.GetMembers(); foreach (MemberInfo members in class_members) { Console.WriteLine(members.ToString()); } Console.WriteLine(“”nThe Class Methods”n=================”n”); MethodInfo[] class_methods = typeObj.GetMethods(); foreach (MethodInfo methods in class_methods) { Console.WriteLine(methods.ToString()); } }}

运行此程序,输出如下:

The Class name is CustomerThe Class Members=================Int32 GetHashCode()Boolean Equals(System.Object)System.String ToString()Void set_Name(System.String)System.String get_Name()System.Type GetType()Void .ctor()System.String NameThe Class Methods=================Int32 GetHashCode()Boolean Equals(System.Object)System.String ToString()Void set_Name(System.String)System.String get_Name()System.Type GetType()

这为我们显示了从 System.Object 继承的所有类的成员,并且还展示了一种方法,C# 在内部将 get 和 set 属性 accessors 表示为 get_xxx() 和 set_xxx() 方法。

在下一个示例中,我们使用 GetType() 在运行时查找表达式的类型:

using System;public class TypeTest{ public static void Main() { int radius = 8; Console.WriteLine(“Calculated area is = {0}”, radius * radius * System.Math.PI); Console.WriteLine(“The result is of type {0}”, (radius * radius * System.Math.PI).GetType()); }}

此程序的输出告诉我们,结果是 System.Double 类型,选择它是因为System.Math.PI 是这种类型。

Calculated area is = 201.061929829747The result is of type System.Double

分类: c# 标签:

.NET Framework 开发人员指南 字符转义

2010年2月26日 奇奇 没有评论

.NET Framework 常规参考  

字符转义
大多数重要的正则表达式语言运算符都是非转义的单个字符。转义符 \(单个反斜杠)通知正则表达式分析器反斜杠后面的字符不是运算符。例如,分析器将星号 (*) 视为重复限定符,而将后跟星号的反斜杠 (\*) 视为 Unicode 字符 002A。

下表中列出的字符转义在正则表达式和替换模式中都会被识别。

转义符        说明
一般字符      除 . $ ^ { [ ( | ) * + ? \ 外,其他字符与自身匹配。
\a            与响铃(警报)\u0007 匹配。
\b            如果在 [] 字符类中,则与退格符 \u0008 匹配;如果不是这种情况,请参见本表后面的“注意”部分。
\t            与 Tab 符 \u0009 匹配。
\r            与回车符 \u000D 匹配。
\v            与垂直 Tab 符 \u000B 匹配。
\f            与换页符 \u000C 匹配。
\n            与换行符 \u000A 匹配。
\e            与 Esc 符 \u001B 匹配。
\040          将 ASCII 字符匹配为八进制数(最多三位);如果没有前导零的数字只有一位数或者与捕获组号相对应,则该数字为后向引用。(有关详细信息,请参见反向引用。)例如,字符 \040 表示空格。
\x20          使用十六进制表示形式(恰好两位)与 ASCII 字符匹配。
\cC           与 ASCII 控制字符匹配;例如,\cC 为 Ctrl-C。
\u0020        使用十六进制表示形式(恰好四位)与 Unicode 字符匹配。
\             在后面带有不识别为转义符的字符时,与该字符匹配。例如,\* 与 \x2A 相同。

注意   转义字符 \b 是一个特例。在正则表达式中,\b 表示单词边界(\w 和 \W 之间的字符);不过,在 [] 字符类中,\b 表示退格符。在替换模式中,\b 始终表示退格符。

\u   unicode码

分类: c# 标签:

label换行

2010年2月26日 奇奇 没有评论
很多朋友都会在开发WinForm中遇到Label要显示的内容太长,但却不能换行的问题.这里我总结了几种方法,供大家参考:
        第一种是把Label的AutoSize属性设为False,手动修改Label的大小.这样的好处是会因内容的长度而自动换行,但是当内容的长度超过所设定的大小时,多出的内容就会无法显示.因此,这种方法适合于基本确定内容长度的时候使用.
        第二种是把Label的Dock设为FILL,同时将AutoSize属性设为False,这种方法可将上面所说的缺点修正,但是同时Label会将其它控件的位置霸占,影响布局.因此,在使用该方法时,最好给Label加上个Panel或GroupBox控件.
        第三种是通过判断内容的长度,动态设置Label的大小.具体程序如下(Label控件取名为Label1,显示内容的字符串为str):
        int LblNum = str.Length;   //Label内容长度
         int RowNum = 10;           //每行显示的字数
         float FontWidth = label1.Width / label1.Text.Length;    //每个字符的宽度
         int RowHeight=15;           //每行的高度
         int ColNum = (LblNum – (LblNum / RowNum) * RowNum) == 0 ? (LblNum / RowNum) : (LblNum / RowNum) + 1;   //列数
         label1.AutoSize = false;    //设置AutoSize
         label1.Width = (int)(FontWidth * 10.0);           //设置显示宽度
         label1.Height = RowHeight * ColNum;           //设置显示高度
        通过这种方法可以令Label每行所显示的字数得到控制,同时也动态的生成的所对应的行数,这对于排版有很大的好处,但是如果显示内容过多,该方法也会令多出来的内容无法显示.因此,对于显示内容过长的时候,可以在外层加上Panel或GroupBox,设置AutoScroll为true,这样就不会因为太长而导致Label高度扩大而影响其它控件的布局,同时也可以更好地显示完整的内容。
        三种方法都有它的优缺点,没有说谁优谁劣,只有最适合的,朋友们不妨试试
分类: c# 标签:

原创 WC3游戏全屏修改工具for win7 无需重启 (绿色,安全,无广告,无插件)

2010年2月26日 奇奇 没有评论

最近身边的朋友很多都换了win7,然而总是会有一些朋友说玩游戏两边黑黑的,不能全屏.给他们搞一两个还行,多了真感觉烦,所以就用c#写了一个小软件.

网上修改的方法无非就是3种:

一种是用显卡驱动的控制面板修改(不是所有都行的)

二就是修改系统的显示方式(针对所有游戏)

三呢单独修改游戏的分辨率(我这里就作了魔兽争霸3的修改操作)

其实都是都是通过修改注册表,来完成的.所以不用大家说也明白了这个小软件的原理.在win7下测试通过,其他系统暂没有测试.测试过的朋友可以反馈给我.

软件名称 WC3游戏全屏修改工具for win7

软件开发环境 win7 x64 vs2008sp1  

软件大小 227kb

软件版本 1.0

软件运行必须安装.net framework 2.0以上(win7自带3.5,所以不用安装直接就能运行).

软件界面

 

软件下载 http://www.qiqid.com/qiqisoft/WC3tool.zip

bug反馈 http://qiqi.qorg.cn/index.php/2010/02/qiqisoftwc3tool.html

   本工具可以在无需重启,不破坏任何系统设置的情况下,通过两种方法修改游戏分辨率,达到游戏全屏的目的(左右没有黑边)。一般只需要使用一种方法修改即可。方法一适用于所有游戏(适用于A卡用户,N卡一般n卡的控制台直接就能改),方法二只适用于魔兽争霸3,针对不同显示器有不同的选项,大家可以逐个测试。如您对本工具有任何意见,欢迎访问blog与奇奇联系。

分类: c#, win, 作品 标签:

vs2008 c#学习笔记 (更新ing)

2010年1月22日 奇奇 没有评论

<新建项目>和<新建网站>是不同的

建议选择NF2.0(默认是3.5)兼容性好

HyperLink 控件加上  Target=”_blank” 是可以新窗口打开的

分类: c# 标签: