using System;
using System.Linq;
using System.ServiceProcess;
private ServiceController currentService = new ServiceController();
currentService.MachineName = Environment.MachineName;
cmbServiceName.BeginUpdate();
foreach (ServiceController service in ServiceController.GetServices())
{
if (service.ServiceType == ServiceType.Win32OwnProcess)
cmbServiceName.Items.Add(service);
}
cmbServiceName.EndUpdate();
cmbServiceName.Sorted = true;
cmbServiceName.DisplayMember = "DisplayName";
var query = from service in ServiceController.GetServices()
let DN = service.DisplayName
let ST = (service.ServiceType == ServiceType.Win32OwnProcess)
where ST
orderby DN ascending
select service;
cmbServiceName.Sorted = false;
cmbServiceName.Items.AddRange(query.ToArray());
cmbServiceName.DisplayMember = "DisplayName";
var query = from service in ServiceController.GetServices()
let DN = service.DisplayName
let SN = service.ServiceName
let ST = (service.ServiceType == ServiceType.Win32OwnProcess)
where ST
orderby DN ascending
select new { DN, SN };
cmbServiceName.Sorted = false; // 绑定数据时,禁用排序。
cmbServiceName.ValueMember = "SN"; // 绑定数据之前赋值。
cmbServiceName.DataSource = query.ToList();
cmbServiceName.DisplayMember = "DN";
int index = cmbServiceName.FindString("SQL Server");
cmbServiceName.SelectedIndex = (index > 0) ? index : 0;
cmbMachineName.SelectedIndex = cmbMachineName.Items.Add(Environment.MachineName);