zoukankan      html  css  js  c++  java
  • winfrom进程、线程、用户控件

    一、进程

    一个进程就是一个程序,利用进程可以在一个程序中打开另一个程序。

    1、开启某个进程
    Process.Start("文件缩写名");

    注意:Process要解析命名空间。


    2、通过绝对路径开启某个进程
    Process p = new Process();
    p.StartInfo = new ProcessStartInfo("要打开的程序绝对路径");
    p.Start();

    3、获取全部开启的进程:返回的是一个Process类的数组
    Process[] pro = Process.GetProcesses();

    4、杀死进程
    对象.Kill();

    5、常用的开启网页注册账号:
    Process.Start("http://.....");

    1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel;
     4 using System.Data;
     5 using System.Diagnostics;
     6 using System.Drawing;
     7 using System.Linq;
     8 using System.Text;
     9 using System.Windows.Forms;
    10 
    11 namespace WindowsFormsApplication1
    12 {
    13     public partial class Form1 : Form
    14     {
    15         public Form1()
    16         {
    17             InitializeComponent();
    18         }
    19 
    20         private void button1_Click(object sender, EventArgs e)
    21         {
    22             //限制可以选择的文件类型
    23             openFileDialog1.Filter = "应用程序|*.exe";
    24 
    25             DialogResult dr = openFileDialog1.ShowDialog();
    26             if (dr == DialogResult.OK)
    27             {
    28                 //将选中文件的路径放到textBox1里
    29                 textBox1.Text = openFileDialog1.FileName;
    30             }
    31         }
    32 
    33         private void button2_Click(object sender, EventArgs e)
    34         {
    35             //先解析Process,实例化。
    36             Process pro = new Process();
    37 
    38             //将路径参数实例化出来。
    39             ProcessStartInfo psi = new ProcessStartInfo(textBox1.Text);
    40 
    41             //设置打开路径需要一个ProcessStartInfo类型参数。
    42             pro.StartInfo = psi;
    43 
    44             //调用他的打开方法
    45             pro.Start();
    46         }
    47 
    48         private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    49         {
    50             //打开默认浏览器,网址是qq。
    51             Process.Start("http://www.qq.com");
    52         }
    53 
    54         private void button3_Click(object sender, EventArgs e)
    55         {
    56             //获取电脑上开着的所有进程,返还一个Process数组
    57             Process[] pro= Process.GetProcesses();
    58 
    59             //遍历数组中每一个进程
    60             foreach (Process p in pro)
    61             {
    62                 //把进程打印在richTextBox1中
    63                 richTextBox1.Text += p.ToString() + "
    ";
    64                 
    65                 //关闭进程,遍历一个关一个,慎用!
    66                 //p.Kill();
    67             
    68             }
    69         }
    70     }
    71 }

    二、线程

    每个程序都有一个主线程,控制窗体。

    如果主线程要执行的代码需要占用很多时间,就需要将这些要执行的代码另开一个线程来执行。

    Thread要解析命名空间。

    //使后台线程可以跨线程访问相应的对象。写在构造函数中。
    Control.CheckForIllegalCrossThreadCalls = false;

    //开一个新线程参数放方法的委托。 
    Thread th1 = new Thread(test1);

    //让这个线程变成后台线程,主线程关闭的时候后台线程也关闭。
    th1.IsBackground = true;

    //开始执行线程
    th1.Start();

    //线程关闭
    th1.Abort();

    将该线程要做的事写成一个没有返回值的方法test1。

    这个方法可以没有参数,也可以有一个参数但这个参数必须是object类型

    如果方法需要一个参数,在线程开始里边把这个参数传过去。

    将这个方法委托到该线程上去。

    为了防止线程在关闭主窗口时的延迟关闭导致的程序报错,

    在窗口的FormClosing事件中判断线程是否关闭了,如果还未关闭关闭线程。

    三、用户控件

    用户控件,顾名思义就是用户自己组成的控件。

    1、制作用户控件:

    在项目中添加新建项选用户控件,改个名字,添加。

    注意:在用户控件的生成代码中把里面空间的访问修饰符都改为public。

    制作完以后,生成一下,然后在工具箱中就会有这个用控件。

    要想给用户控件中的控件设置属性内容,只能用代码设置。

  • 相关阅读:
    函数模板——隐式实例化、显式实例化、显式具体化
    SQLAlchemy
    pymysql的使用
    mysql 安装
    Django---Cerley使用
    支付宝支付功能
    Django--log配置
    Vue--基础
    Python学习手册
    针对特定网站scrapy爬虫的性能优化
  • 原文地址:https://www.cnblogs.com/snow22546/p/6873644.html
Copyright © 2011-2022 走看看