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. JavaWeb—Servlet

    1.什么是Servlet 用来扩展web服务器功能的组件——早期的web服务器只能处理静态资源的请求,即需要事先将html文件准备好,并存放到web服务器上面.不能够处理动态资源的请求(需要计算,动态 ...

  2. ACM解题之(ZOJ 1094) Matrix Chain Multiplication

    题目来源: 点击打开链接 题目翻译: 矩阵乘法问题是动态规划的典型例子. 假设你必须评估一个表达式,如A * B * C * D * E,其中A,B,C,D和E是矩阵.由于矩阵乘法是关联的,乘法运算的 ...

  3. Log level with log4j and Spark

    Log Level Usages OFF This is the most specific, which allows no logging at all FATAL This is the mos ...

  4. SOA和微服务之间的区别

    近几年,我们有很多文章对SOA和微服务之间的不同点和相似点进行了分析.有些人认为SOA有很多地方是值得微服务学习的,而有些人则认为区别对待微服务和SOA会更好.而Neal Ford认为,将单体迁移到面 ...

  5. Oracle表约束

    约束的概述: 约束是在表中定义的用于维护数据库完整性的一些规则 (1).主键约束 不能为空也不能重复 在一个表中只能定义一个主键约束 Oracle会在主键上建立一个唯一索引,可以指定唯一索引的存储位置 ...

  6. Dubbo框架入门介绍

    背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时,只需一个 ...

  7. spring data jpa是什么?

    JPA是一个Java编程语言接口规范,Hibernate ORM是JPA规范的一个实现.   Spring Data JPA能干什么 在开始之前,先举个简单的例子. 一张表user有三个字段,id.n ...

  8. Linux用户和用户组管理 用户管理相关命令

    用户添加命令 useradd 注意: 新添加的用户如果不设定密码是不能够登录系统的 命令格式: [root@localhost ~]#useradd [选项] 用户名 选项说明: 选项 选项说明 -u ...

  9. Python与硬件学习笔记:蜂鸣器(转)

    相信大家对蜂鸣器都不会陌生,很多产品和方案中都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下.开始工作.工作结束或是故障等等.这里对单片机在蜂鸣器驱动上的应用作一下描述. 蜂鸣器的介绍 ...

  10. tomcat8配置tomcat-users.xml不生效

    一般想进入tomcat管理后台,只要在tomcat-users.xml配置文件中添加一下内容即可 <role rolename="manager-gui"/> < ...