1、对象的初始化器:

Class a = new Class()
{
id = ,
name = "张三"
}

2、窗体间传值
    ①构造函数
    ②单例函数

//单例模式:确保一个类只有一个实例,并提供一个全局访问点。
public class Singleton
{
// 定义一个静态变量来保存类的实例
private static Singleton uniqueInstance; // 定义私有构造函数,使外界不能创建该类实例
private Singleton()
{
} /// <summary>
/// 定义公有方法提供一个全局访问点,同时你也可以定义公有属性来提供全局访问点
/// </summary>
public static Singleton GetInstance()
{
// 如果类的实例不存在则创建,否则直接返回
if (uniqueInstance == null || uniqueInstance.isDispose)
{
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
}

  ③发布-订阅模式(事件传值)

Action<> //不带返回值
Func<>//带返回值

3、委托的使用及内部构造

class Program
{
delegate int AddDel(int a,int b);
/// <summary>
/// 委托的内部构造分析
/// </summary>
/// <param name="AddInstanceFunc">方法指针</param>
/// <param name="p">目标对象</param>
/// <param name="del">所有的方法都在委托数组里</param>
static void Main(string[] args)
{
AddDel del = new AddDel(AddStaticFunc);
Program p = new Program();
//多播委托的时候,拿到委托返回值是最后一个委托指向的方法的执行结果。
del += p.AddInstanceFunc; int result = del(,);
//
Console.WriteLine(result); Console.ReadKey();
} static int AddStaticFunc(int a, int b)
{
return a + b;
}
//实例方法
public int AddInstanceFunc(int a, int b)
{
return a + b + ;
}
}

4、lambda表达式的演变过程

static void Main(string[] args)
{
#region 泛型委托
//Func<int, int, int> funDemo = new Func<int, int, int>(AddStaticFunc);
//int result = funDemo(3,4); //Console.WriteLine(result);
#endregion #region 匿名方法
//Func<int, int, int> funDemo = delegate(int a, int b) { return a + b; };
//int result = funDemo(3, 4); //Console.WriteLine(result);
#endregion #region lambda
//lambda语句
//Func<int, int, int> funDemo = (int a, int b) => { return a + b; }; //lambda表达式
//Func<int, int, int> funDemo = (int a, int b) => a + b; //进一步演变为
//Func<int, int, int> funDemo = (a, b) => a + b; //int result = funDemo(3, 4);
//Console.WriteLine(result);
#endregion #region 案例
List<string> strlist = new List<string>() { "3","9","32","7"};
//把集合中字符串小于6的打印出来
var temp = strlist.Where(delegate(string a) { return a.CompareTo("6") < 0; });
foreach (var item in temp)
{
Console.WriteLine(item); }
#endregion Console.ReadKey();
}

5、制作图片表格(10列),手动添加行

string[] imgPath;
imagePath = "../../Images";
imgPath = Directory.GetFiles(imagePath); int j = ;
for (int i = ; i < imgPath.Length; i += )
{
List<string> imgPathList = new List<string>();
imgPathList = imgPath.Take(j).Skip(i).ToList();
j += ;
imagePathListGroup.Add(imgPathList);
} for (int i = ; i < imagePathListGroup.Count; i++)
{
i = this.dgv_Image.Rows.Add();
DataGridViewRow row = this.dgv_Image.Rows[i];
row.Height = ;
for (int j = ; j < imagePathListGroup[i].Count; j++)
{
Image img = Image.FromFile(imagePathListGroup[i][j].ToString());
row.Cells[j].Value = img;
}
}

6、datagrideview动态添加数据

if (grouplist != null)
{
for (int i = ; i < grouplist.Count; i++)
{
int index = this.dgvGroup.Rows.Add();
this.dgvGroup.Rows[index].Cells[].Value = grouplist[i].GroupID;
this.dgvGroup.Rows[index].Cells[].Value = grouplist[i].GroupName;
}
}

单元格点击事件中获得单元格的值:

string groupName = dgvGroup.CurrentCell.Value.ToString();
string groupId = dgvGroup.CurrentRow.Cells[].Value.ToString();

或者

string groupName = dgvGroup.Rows[dgvGroup.SelectedCells[].RowIndex].Cells["UserListColumn"].Value.ToString();

或者

string groupName = dgvGroup.SelectedCells[].Value.ToString();

winform常用方法的更多相关文章

  1. Winform中checklistbox控件的常用方法

    Winform中checklistbox控件的常用方法最近用到checklistbox控件,在使用其过程中,收集了其相关的代码段1.添加项checkedListBox1.Items.Add(" ...

  2. C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式

    C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法的示例与源码下载带详细注释-源码代码-注册表方式-启动目录快捷方式 C#实现自动启动的方法-两种方法 源码下载地址: ...

  3. C# Winform 跨线程更新UI控件常用方法汇总(多线程访问UI控件)

    概述 C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件的线程访问它”的异常.处理跨线程更新Winform UI控件常用的方法有4种:1. ...

  4. C# Winform 跨线程更新UI控件常用方法总结(转)

    出处:http://www.tuicool.com/articles/FNzURb 概述 C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件 ...

  5. Winform TextBox中只能输入数字的几种常用方法(C#)

    方法一: private void tBox_KeyPress(object sender, KeyPressEventArgs e) { ; //禁止空格键 )) return; //处理负数 if ...

  6. C# Winform 跨线程更新UI控件常用方法汇总

    https://www.cnblogs.com/marshal-m/p/3201051.html

  7. 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  8. winform界面特效470多例

    一共470多例winform 界面特效的源码. 实例030 窗口颜色的渐变 实例说明 在程序设计时,可以通过设置窗体的BackColor属性来改变窗口的背景颜色.但是这个属性改变后整个窗体的客户区都会 ...

  9. C#程序实现软件开机自动启动的两种常用方法

    C#/WPF/WinForm/.NET程序代码实现软件程序开机自动启动的两种常用方法函数的示例与实例带详细注释 方法一:将软件的快捷方式创建到计算机的自动启动目录下(不需要管理员权限) 1.必要引用 ...

随机推荐

  1. when you are old

    When you are old william Butler Yeats When you are old and grey and full of sleep And nodding by the ...

  2. ACM解题之(ZOJ 2212) Argus

    题目来源: 点击打开题目 题目翻译: 数据流是实时的,连续的,有序的项目序列.一些例子包括传感器数据,互联网流量,金融代码,在线拍卖以及诸如网络使用日志和电话记录之类的交易日志.同样,对流进行的查询在 ...

  3. 用matlab将nc数据读出来,写成二进制文件,然后用grads画图

    clear,clc nt=735;ny=73;    %2.5*2.5格点的nx=144;    %2.5*2.5格点的f=netcdf('air.mon.mean.nc','nowrite');tt ...

  4. bootstrap table 复选框使用

    var columns = [ { field : 'checked', checkbox: true, align: 'center', valign: 'middle', formatter:fu ...

  5. Android系统--Binder系统具体框架分析(一)

    Binder系统具体框架分析(一) 一.Binder系统核心框架 1. IPC:Inter-Process Communication, 进程间通信 A进程将数据原原本本发送B进程,主要负责进程间数据 ...

  6. Android编译系统简要介绍【转】

    本文转载自:http://blog.csdn.net/luoshengyang/article/details/18466779 在Android源码环境中,我们开发好一个模块后,再写一个Androi ...

  7. 第一章 安装MongoDB

    需要下载 高效开源数据库(mongodb) V3.0.6 官方正式版 安装配置: MongoDB默认的数据目录为:C:\data\db.如果不用默认目录,则需要在在mongod.exe命令后加--db ...

  8. 查看SELinux状态

    查看SELinux状态:1./usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态 2.getenforce ##也可以用这个命令检查 关闭S ...

  9. FreeMarker 使用实例

    以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1,文本:直接输出的部分 2,注释:<#-- ... - ...

  10. 【codevs1028】花店橱窗布置(费用流)

    这几天刚学了费用流,找到了这道题来练一练手. 题目: 题目描述 Description 假设以最美观的方式布置花店的橱窗,有F束花,V个花瓶,我们用美学值(一个整数)表示每束花放入每个花瓶所产生的美学 ...