C#开发小技巧

001.判断一个Form是否已关闭并释放,需要从引用和对象两方面来判断,判断引用是否为null:mainfm==null
判断引用的对象是否已释放:mainfm.IsDisposed
MainFormmainfm;
......
privatevoidbutton_ok_Click(objectsender,EventArgse)
{
if(mainfm==null||mainfm.IsDisposed)
{
mainfm=newMainForm();
mainfm.Show();
}
else
{
mainfm.Show();
}
}

002.设置Form_MDI为MDI主窗口,设置Form_Child为子窗体
把Form_MDI的属性IsMdiContainer设置为True

把Form_Child的属性isMdiContainer设置为false,然后在Form_Child的load事件中加载如下代码:

ChildForm2chldfm2=newChildForm2();

chldfm2.MdiParent=this;

chldfm2.Show();

003.工具栏按钮同时显示图像与文字
设置DisplayStyle属性(ImageAndText为显示图像与文字)
设置TextImageRelation属性(ImageAboveText图像在上文字在下)

004.只运行一个程序实例
usingSystem.Diagnostics;
staticclassProgram
{
///<summary>
///应用程序的主入口点。
///</summary>
[STAThread]
staticvoidMain()
{
if(Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length>1)
{
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(newForm1());
}
}

005.根据字符串名称,实例化指定的Form.
在开发中,一般需要在TreeView中打开相应的Form,TreeView的Form名称保存在数据库中,双击TreeView需要根据字符串名称,实例化指定的Form.
格式:Activator.CreateInstance(Type.GetType("命名空间+类名"))
返回:要访问新创建的实例则必须解包的句柄
描述:使用命名的程序集和默认构造函数,创建名称已指定的类型的实例。
Formfm;
fm=(Form)Activator.CreateInstance(Type.GetType("WindowsApplication2.Form2"));
fm.Show();

//第一步:得到类的全名(命名空间+类名)
//第二部:根据全名得到类的类型
//第三步:创建类实例

反射动态创建对象:
如果A,B,C,D都与执行代码同一个程序集.则可以这样调用
System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("命名空间.类名",false);
如:
objecto=System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("MyNameSpace.A",false);

不同程序集的话.则要装载调用.如下:
System.Reflection.Assembly.Load("程序集名称").CreateInstance("命名空间.类名",false);
如:
objecto=System.Reflection.Assembly.Load("MyDll").CreateInstance("MyNameSpace.A",false);

动态创建后再将o强制转换为IChar接口,如下:
ICharichar=oasIChar;

如果转换失败则ichar为null值.

stringfullName=this.GetType().FullName;
stringNamespace=this.GetType().Namespace;
stringname=this.GetType().Name;

006.TreeView
当前选中项:TreeView.SelectedNode
增加顶级节点:TreeView.Nodes.Add("Key","Text")
增加同级节点:TreeView.SelectedNode.Parent.Nodes.Add("Key","Text")
增加子节点:TreeView.SelectedNode.Nodes.Add("Key","Text")
全部展开:TreeView.ExpandAll()
全部收拢:TreeView.CollapseAll()

007.c#与数据库的null值转换.
publicstaticobjectToDBValue(thisobjectvalue)
{
returnvalue==null?DBNull.Value:value;
}

publicstaticobjectFromDBValue(thisobjectdbValue)
{
returndbValue==DBNull.Value?null:dbValue;
}

008.当前程序的基目录
stringcurrentDir=AppDomain.CurrentDomain.BaseDirectory//获得当前程序的
stringfilePath=System.IO.Path.Combine(CurrentDir,"filename.txt");

009.Log4Net

010.全局属性值
Application.Current.Properties["OperatorId"]//全局属性值

011.抛出异常
thrownewException("error");

012.关于集合List<T>
List<int>list=newList<int>();
list.add(11);
list.add(22);
foreach(intiinlist)
{
MessageBox.Show(i.ToString());
}

013.关于可空类型:
可空类型(null):引用类型.自定义类、string、大部分类
不可空类型:值类型.int、boolean、decimal、DateTime等.
可空值类型:不可空类型后加?.如int?i=null;可以把int赋值给int?,不可以把int?赋值给int.
bool?转换为bool需要强制类型转换

复选框是否选中
if((bool)checkBox.IsChecked)
{
MessageBox.Show("选中");
}
if(checkBox.IsChecked==true)

?

?

Cited From:http://blog.csdn.net/gyming/article/details/9209563

时间: 2024-10-20 13:43:50

C#开发小技巧的相关文章

php开发小技巧--快速环境搭建

前几天同学让我帮忙调试一个PHP后台的网站,我擦,我都没有环境你丫还非得让我本地跑,不肯给我权限.我只想说三个字,你丫就是王八蛋.希望你看不到我写的这篇文章. now,吐槽结束,正题开始.下面介绍快速搭建一个PHP开发环境搭建的小技巧.no big deal,就是一个开源的软件.名字是PHPnow.它是Apache+PHP+ MySQL环境套件包,这种集成的开发环境的好处是,它用脚本的方式帮你做了各种缺省的配置,满足你的基本的需求.如果想更高级,对不起,自己定制. 下面用一个很久之前写的程序演示

ios开发小技巧-用宏化简代码

在IOS开发中,要做字典转模型一般情况如下: 1 /** 2 * 声明方法 3 */ 4 - (instancetype) initWithDictionary:(NSDictionary *)dict; 5 + (instancetype) carWithDictionary:(NSDictionary *)dict; 6 7 /** 8 * 实现方法 9 */ 10 - (instancetype)initWithDictionary:(NSDictionary *)dict 11 { 12

开发小技巧2——代码段

概念: 代码段是将预先定义好的可重用代码块快速插入到代码文件中,代码段提高了开发效率,增强了代码的可重用性:既节约了时间,又实现了不同开发人员间代码的共享.同时也可保证同一项目中代码风格的统一. Visual Studio中已经定义了部分代码段,例如:在visual studio中输入for按tab健即可自动生成for循环语句,输入tryf按tab则自动生成try catch语句.       在Visual Studio 2012中创建自定义代码段: 选中项目文件,右击添加-新建项-选择XML

BizTalk开发小技巧

BizTalk开发小技巧 随笔分类 - Biztalk Biztalk 使用BizTalk实现RosettaNet B2B So Easy 摘要: 使用BizTalk实现RosettaNet B2B So Easy最近完成了一个vmi-hub的B2B项目,使用Rosettanet 2.0的标准与一家品牌商,OEM,供应商实现B2B.一共交换4个报文,4B2,3B2,4B2 POD,4C1,说白了就是收发存这些数据:项目环境BizTalk2009...阅读全文 posted @ 2015-10-2

27个iOS开发小技巧

<span style="word-wrap: normal; word-break: normal; line-height: 1.5em; font-size: 14px; outline: none; color: rgb(51, 51, 51); font-family: 'Helvetica neue', Helvetica, sTheiti, 微软雅黑, 黑体, Arial, Tahoma, sans-serif, serif;"><span style=

前端网络、JavaScript优化以及开发小技巧

一.网络优化 YSlow有23条规则,中文可以参考这里.这几十条规则最主要是在做消除或减少不必要的网络延迟,将需要传输的数据压缩至最少. 1)合并压缩CSS.JavaScript.图片,静态资源CDN缓存 通过构建工具Gulp,可以在开发的时候就将合并压缩的事情一起做掉. 之所以要做合并压缩是因为:HTTP 1.x不允许一个连接上的多个响应数据交错到达(多路复用),因而一个响应必须完全返回后,下一个响应才会开始传输. 也就是说即使客户端同时发送了两个请求,而且CSS资源先准备就绪,服务器也会先发

.Net开发小技巧

.NET项目开发中的小技巧 1.不要频繁的创建对象...这个损失是巨大的...new太多了,后果比较严重. 2.打开数据库后要及时的关闭连接,如果你不能做到一个open后跟一个close,那也没关系,用Using满足你偷懒的欲望吧 3.别太迷信string str1 = "";和string.empty之间的差异,性能上和你想的完全不一样.放心大胆的使用""吧. 4.如果你的项目比较大,或者你的IIS服务器配置不太高,那么,我还是建议你多用存储过程,减少前端服务器的

iOS开发小技巧之--WeakSelf宏的进化

我们都知道在防止如block的循环引用时,会使用__weak关键字做如下定义: __weak typeof(self) weakSelf = self; 后来,为了方便,不用每次都要写这样一句固定代码,我们定义了宏: #define WeakSelf __weak typeof(self) weakSelf = self; 之后,我们可以比较方便的在需要的地方: WeakSelf; ... [weakSelf doSomething]; 再后来,我们发现不止self需要使用weak,可能有部分变

报表开发小技巧:报表的设计与配色技巧

1.示例工具 报表开发工具FineReport 2. 取色 2.1 设计器里取色 点击背景右侧的小三角,点击更多颜色,点击自定义选项卡,这里的HSL或者RGB值,就是我们需要得到的精确的颜色,如下图所示. RGB 是对机器很友好的色彩模式,但并不够人性化,因为我们对色彩的认识往往是"什么颜色?鲜艳不鲜艳?亮还是暗?"HSL 模式和 HSV(HSB) 都是基于 RGB 的,是作为一个更方便友好的方法创建出来的. HSL即色相.饱和度.亮度(Hue, Saturation, Lightne

【解决方法】iOS 开发小技巧

1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [[self.searchBar.subviews objectAtIndex:0] removeFromSuperview]; 2,NSDate: [java] view plaincopy 字母  日期或时间元素    表示     示例 G     Era   标志符     Text