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
C#开发小技巧的更多相关文章
- Windows统一平台: 开发小技巧
Windows统一平台: 开发小技巧 技巧一: 在手机端拓展你应用的显示区域.(WP8.1中也适用) 对于Windows Phone系统的手机, 手机屏幕最上方为系统状态栏(System Tray), ...
- flex开发小技巧集锦
关于flex开发网上有非常多的相关信息介绍,因此我们要想学习关于flex开发的知识信息技能是一件非常简单和方便的事情.而针对于flex开发小编要告诉大家的是一些flex开发小技巧.利用这些小技巧能够有 ...
- TP开发小技巧
TP开发小技巧原文地址http://wp.chenyuanzhao.com/wp/2016/07/23/tp%E5%BC%80%E5%8F%91%E5%B0%8F%E6%8A%80%E5%B7%A7/ ...
- 移动Web开发小技巧
移动Web开发小技巧 添加到主屏后的标题(IOS) name="apple-mobile-web-app-title" content="标题"> 启用 ...
- BizTalk开发小技巧
BizTalk开发小技巧 随笔分类 - Biztalk Biztalk 使用BizTalk实现RosettaNet B2B So Easy 摘要: 使用BizTalk实现RosettaNet B2B ...
- Java开发小技巧(三):Maven多工程依赖项目
前言 本篇文章基于Java开发小技巧(二):自定义Maven依赖中创建的父工程project-monitor实现,运用我们自定义的依赖包进行多工程依赖项目的开发. 下面以多可执行Jar包项目的开发为例 ...
- iOS开发小技巧 - UILabel添加中划线
iOS开发小技巧 遇到的问题: 给Label添加中划线,然后并没有效果 NSString *str = [NSString stringWithFormat:@"合计金额 ¥%.2f&quo ...
- PHP开发小技巧②—实现二维数组根据key进行排序
在PHP中内置了很多对数组进行处理的函数,有很多时候我们直接使用其内置函数就能达到我们的需求,得到我们所想要的结果:但是,有的时候我们却不能通过使用内置函数实现我们的要求,这就需要我们自己去编写算法来 ...
- PHP开发小技巧③—实现多维数组转化为一维数组
在平常的项目开发中我们多会用到让多维数组转化为一维数组的情况,但是很多Programmer不会将其进行转化,也有些没有想到很好的算法然后经过乱起八糟的运算方式将其勉强转化好,但是所写的程序代码冗余非常 ...
- PHP开发小技巧①①—php实现手机号码显示部分
从个人信息保护性的角度来讲,我们在开发过程中总会想办法去保护用户的一些个人信息.就如本篇博文所讲,我们有时会将用户的手机号码只显示出部分,这是很多网站都有做的功能.这个功能实现起来也是特别的简单,只需 ...
随机推荐
- selenium+python+unittest:一个类中只执行一次setUpClass和tearDownClass里面的内容(可解决重复打开浏览器和关闭浏览器,或重复登录等问题)
unittest框架是python自带的,所以直接import unittest即可,定义测试类时,父类是unittest.TestCase. 可实现执行测试前置条件.测试后置条件,对比预期结果和实际 ...
- Linux下如何将文件下载到指定目录
一.问题描述 当我在搭服务器的时候,发现由于下载的东西太多,所以需要将一些安装包下载到指定的目录下. 二.解决办法 wget -P /usr/test http://download.redis.io ...
- 小蒟蒻的垃圾emacs配置
(global-set-key [f9] 'compile-file) (global-set-key [f10] 'gud-gdb) (global-set-key (kbd "C-s&q ...
- Flask基础应用
一. Python 现阶段三大主流Web框架 Django Tornado Flask 对比 Django: 优点: 大而全,组件非常全面. 缺点: 太大,加载太大,浪费资源. Flask: 优点: ...
- confiparser模块
什么是confiparser confiparser,翻译为配置解析,很显然,他是用来解析配置文件的, 何为配置文件? 用于编写程序的配置信息的文件 何为配置信息? 为了提高程序的扩展性,我们会把一些 ...
- (C语言逻辑运算符!)&&两种定义字符串的方法&&局部变量、全局变量&&内部函数、外部函数。(新手基础知识备忘录)
(一) 四个逻辑运算符:!(逻辑非) ||(或) &&(与) ^ (异或) 位运算:&(与) |(位或) (二) 如何定义字符串: 1,字符串常量 ...
- 安装orcle服务器端后,不需要安装客户端,可通过plsql登录
用PL/SQL连接oracle数据库,不管是本地的还是远程的,一般都需要安装oracle客户端(500M左右)比较大,而且在各个系统上安装也有些讲究,需要修改相应配置文件,有点麻烦,像平时开发时候,我 ...
- C#几种常用的加密方式
一.AES加密算法 AES算法基于排列和置换运算.排列是对数据重新进行安排,置换是将一个数据单元替换为另一个.AES 使用几种不同的方法来执行排列和置换运算. AES是一个迭代的.对称密钥分 ...
- (转)最新版 nginx内置变量 大全
原文:http://www.cnphp.info/nginx-embedded-variables-lasted-version.html 在配置基于nginx服务器的网站时,必然会用到 nginx内 ...
- (转)MySQL open_files_limit相关设置
http://www.cnblogs.com/zhoujinyi/archive/2013/01/31/2883433.html---------------------------MySQL ope ...