C# 组件应用

    主要指不能直接显示在窗体中,但是可以如同显示在窗体中的控件一样使用。

1.Timer组件

    System.Windows.Forms.Timer只有Tick事件
    System.Timers.Timer只有Elapsed事件

    Enabled属性:设置计时器是否有效,该属性值为True时,触发事件

    Interval属性:计时时间间隔,以毫秒为单位

    Start() 方法:开启计时器

    Stop() 方法:关闭计时器

    DataTime.Now:获取系统时间

 

2.BackgroundWorker控件

    用于实行异步执行耗时操作的功能,会在另一个线程中运行。

示例:

 

backgroundWorker1.WorkerReportProgress  = true;//报告进度更新
backgroundWorker1.WorkerSupportsCancellation = true;// 是否支持异步取消

在组件的DoWork事件中编写如下代码:

 

 

private void backgroundWorker1_DoWork(object sender,DowWorkEventArgs e)
{
  for(int i=1;i<=10;++i)
  {
    if(backgroundWorker1.CancelllationPending==true)
    {
      e.Cancle = true;
      break;
     }
    else
    {
      System.Threading.Sleep(500);
      backgroundWorkder1.REportProgress(i*10);
    }  
  }
}


在RunWorkercompleted事件中编写如下代码:

 

 

private void backgroundWorker1_RunWorkerCompleterd(object sender,SunWorkerCompleteEventArgs e)
{
  if(!(e.Error==null))//异步操作期间发生错误
    this.label2.Text = "Error: "+e.Error.Message;
    else if(e.Cancelled)//异步操作取消
      this.label2.Text = "Canceled";
    else
      this.albel2.Text = e.Result.ToString();
}


在ProgressChanged事件中编写如下代码:

 

 

private void backgroundWorker_ProgressChanged(object sender,ProgressChangedEventArgs e)
{
	this.tbProgress.Value = e.ProgressPercentage;
	this.label1.Text = e.ProgressPercentage.ToString()+"%";
}


在“开始”按钮的Click事件中编写如下代码:

 

 

private void buttonStart_Click(object sender,EventArgs e)
{
	//判断是否进行异步操作
	if(backgroundWorker1.IsBusy!=true)
		backgroundWorker1.RunWorkerAsync();
}


在“取消”按钮的Click事件中编写如下代码:

 

 

private void buttonCancel_Click(object sender,EventArgs e)
{
	//判断是否支持异步取消
	if(backgroundWorker1.WorkerSupportsCancellation==true)
		backgroundWorker1.CancelAsync();
}

 

 

 

 

 

3.EventLog组件

    可以访问或自定义Windows事件日志

    Log属性:获取或设置读取或写入的日志的日志名称。应用程序和服务使用Application日志,设备驱动程序使用System日志文件,当打开审核时,系统在security日志中生成成功审核事件和失败审核事件

    Source属性:事件日志中的源名称,事件源指示用什么来记录事件,通常是应用程序的名称,如果应用程序非常大,则是应用程序子组件。

    MachineName属性:获取或设置在其上读取或写入事件的计算机名称。如果连接到本地计算机上的日志,则不要求指定(“.”)

    Entries() 属性:获取事件日志的内容,该属性为只读的

    Exists() 方法:确定指定的日志是否存在

    WriteEntry() 方法:将项写入事件日志

 

4.Process组件

    Id属性:获取关联进程的唯一标识

    ProcessName属性:获取进程的名称,名不包含.exe扩展名或路径

    PrivateMemorySize64属性:获取为关联进程分配的专用内存量

    WorkingSet64属性:为关联进程分配的物理内存

    GetProcesses()方法:创建新的Process组件的数组,并将它们与现有进程资源关联

    GetProcessById()方法:

    Kill()方法:可以立即停止关联的进程

 

private void Form1_load(object sender,EventArgs e)
{
	Process[] process = Process.GetProcess();//获取系统进程
	ListViewItem item;
	foreach(Process p in process)
	{
		item = new ListViewItem(p.ProcessName.ToString());
		item.Tag = p.Id;
		listView1.Items.Add(item);
		item.SubItems.AddRange(newstring[] {p.WorkingSet64.ToString(),p.BasePriority.ToString(),p.VirtualMemorySize64.ToString()});
	}
}

在“结束进程”按钮的click事件中编写代码:

 

 

private void button1_Click(object sender,EventArgs e)
{
	ListViewItem item = listView1.SelectedItems[0];
	if(item==null)
		return;
	Process p = Process.GetProcessById(Convert.ToInt32(item.Tag));
	if(p!=null)
	{
		if(MessageBox.Show("终止该进程?",“警告”,MessageBoxButtons.YesNo,MessageBoxIcon.Warning,MessageBoxDefaultButton.Button2)==DialogResult.Yes)
			p.Kill();
	}
}

 

 

 

 

 

5.ServiceControl组件

    表示Windows服务并允许连接到正在运行或者已停止的服务、对其进行操作或获取有关它的信息,用于控件Windows服务的各种具体行为

6.ImageList

用于存储在窗体中其他控件使用的图像,可以存储任意大小的图像,但是在同一个ImageList中,图像大小必须相同。

7.FileSystemWatcher

用于监控文件的变化,可以监控一个特定的文件、一组文件、一个目录或整个驱动器发生的事件。

Path属性设置监控文件的位置或目录

Notify属性规定监控哪些内容

8.ErrorProvider

ErrorProvider控件可以在不打扰到用户的情况下向用户显示有错误发生。当验证用户在窗体中的输入或显示数据集内的错误时,一般要用到该控件。

常用属性及描述

BlinkRate获取或设置错误图标的闪烁速率
BlinkStyle获取或设置一个值,通过该值指示错误图标的闪烁时间
DataMember获取或设置数据源中r监视的列表
DataSource获取或设置ErrorProvider监视的数据源
Icon获取或设置Icon,当为控件设置了错误描述字符串时,该图标显示在控件旁边

常用方法及描述

BindToDataAndErrors提供在运行时同时设置DataSource和DataMember的方法
Clear清除与此控件关联的所有设置
GetError返回指定控件的当前错误描述字符串
GetIconAlignment获取一个值,通过该值指示错误图标相对控件放置位置
SetError设置指定控件的错误描述字符串
SetIconAlignment设置错误图标相对与控件的放置位置

 

最后欢迎大家访问我的个人网站: 1024s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值