1、c# console暂停输出
console.readline();
2、委托delegate event eventhandler action
简明解释:https://blog.csdn.net/smile_Ho/article/details/105899809
几种委托的详细解释1:https://blog.csdn.net/chopper7278/article/details/3145000
委托详解2:
delegate()讲的比较好的:https://www.cnblogs.com/hushzhang/p/5901052.html
3、不同窗体之间传值
https://bbs.csdn.net/topics/390128592
4、dll调用:
http://www.zyiz.net/tech/detail-268058.html
https://www.cnblogs.com/suifing/p/4023268.html
使用的时候几个错误:
- 调用 Dll "试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
dll位数和当前编译器位数不匹配。都设置为32位/64位试试。
2.文件路径放在debug下。
5、多线程:
G_th = new System.Threading.Thread(//新建一条线程
delegate()//使用匿名方法
{
int P_int_count = 0;//初始化计数器
while (true)//开始无限循环
{
P_int_count = //计数器累加
++P_int_count > 100000000 ? 0 : P_int_count;
this.Invoke(//将代码交给主线程执行(由于更新控件内容只能通过主线程,因此交给主线程执行。
(MethodInvoker) delegate//使用匿名方法
{
lb_time.Text = //窗体中显示计数
P_int_count.ToString();
});
System.Threading.Thread.Sleep(1000);//线程睡眠1秒
}
});
其他:
https://blog.csdn.net/u014090257/article/details/86703816
下面这个还没仔细看,涉及异步/同步线程,线程池等高级操作,先放过。
https://www.cnblogs.com/luxiaoxun/p/3280146.html
6、动态创建控件/删除控件/定义函数
for (int i = 0; i < 100; i++)//添加100个按钮
{
Button bt = new Button();//创建button按钮
bt.Text = (i + 1).ToString();//设置button按钮的文本值
bt.Name = (i + 1).ToString();//设置button按钮的Name属性
bt.Width = 35;//设置button按钮的宽
bt.Height = 35;//设置button按钮的高
bt.Location = new Point(p_int_x, p_int_y);//设置button按钮的位置
bt.Click += new EventHandler(bt_Click);//定义button按钮的事件,用了事件。
p_int_x += 36;//设置下一个按钮的位置
if ((i + 1) % 10 == 0)//设置换行
{
p_int_x = 10;//换行后重新设置X坐标
p_int_y += 36;//换行后重新设置Y坐标
}
Controls.Add(bt);//将button按钮放入窗体控件集合中
}
动态定义点击函数:
void bt_Click(object sender, EventArgs e)
{
Control P_control = sender as Control;//将sender转换为control类型对象
do something…
}
}
删除所有控件或其他,可参考。
不能直接用controls.removeat[0-100]这种,因为删除后controls索引总数会变化。
实现参考下面代码:
void RemoveControl()
{
for (int i = 0; i < 100; i++)//开始遍历100个按钮
{
if (Controls.ContainsKey(//窗体中是否有此按钮
(i+1).ToString()))
{
for (int j = 0; j < Controls.Count; j++)//遍历窗体控件集合
{
if (Controls[j].Name == //是否查找到按钮
(i + 1).ToString())
{
Controls.RemoveAt(j);//删除指定按钮
break;
}
}
}
}