1
Imports System.Collections.Generic Imports System.Windows.Forms Public Class Service_List Private Sub Service_List_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' フォームにクリッドをフィットさせる ' (親フォームに対する距離をプロパティウインドウで設定てきます) Me.一覧.ParentFit(Me) Me.一覧.AddColumn("ServiceName", "名称") Me.一覧.AddColumn("DisplayName", "表示名") Me.一覧.AddColumn("status", "状態") ' サービスをセットする配列を作成 Dim サービス配列() As ServiceProcess.ServiceController ' クラスメソッドでサービスの一覧を得る サービス配列 = ServiceProcess.ServiceController.GetServices() ' ループ処理用のサービス単体用の変数を定義 Dim 対象サービス As System.ServiceProcess.ServiceController ' データをグリッドにセット For Each 対象サービス In サービス配列 Me.一覧.AddRow() Me.一覧.SetColumnText("ServiceName", 対象サービス.ServiceName) Me.一覧.SetColumnText("DisplayName", 対象サービス.DisplayName) If 対象サービス.Status = ServiceProcess.ServiceControllerStatus.Running Then Me.一覧.SetColumnText("status", "実行中") End If Next ' サービス名でソート Me.一覧.Sort(Me.一覧.Columns(0), System.ComponentModel.ListSortDirection.Ascending) ' 2008/03/16 : 以下で代替可能 ' Me.一覧.Sort2(0, System.ComponentModel.ListSortDirection.Ascending) ' ****************************************************************** ' 自動サイズ調整後に( 調整無し ) にすると、調整前のサイズに戻るので、 ' カラムサイズを自動調整した後、ユーザが幅を変更できるようにする為の処理 ' ※ 動的配列は連想配列が便利 ' ****************************************************************** Dim width As New Dictionary(Of Integer, Single) Dim i As Integer = 0 For i = 0 To Me.一覧.ColumnCount() - 1 width(i) = Me.一覧.Columns(i).Width Next Me.一覧.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None For i = 0 To Me.一覧.ColumnCount() - 1 Me.一覧.Columns(i).Width = width(i) Next ' 2008/03/16 : 以下で代替可能 ' Me.一覧.AllowResizeColumn(True) End Sub Private Sub Service_List_SizeChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.SizeChanged ' フォームにグリッドをフィットさせる Me.一覧.ParentFit(Me) End Sub End Class
1
?
_ Partial Class Service_List Inherits System.Windows.Forms.Form 'フォームがコンポーネントの一覧をクリーンアップするために dispose をオーバーライドします。
_ Protected Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub 'Windows フォーム デザイナで必要です。 Private components As System.ComponentModel.IContainer 'メモ: 以下のプロシージャは Windows フォーム デザイナで必要です。 'Windows フォーム デザイナを使用して変更できます。 'コード エディタを使って変更しないでください。
_ Private Sub InitializeComponent() Me.一覧 = New lightbox.LboxGrid CType(Me.一覧, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' '一覧 ' Me.一覧.AllowUserToAddRows = False Me.一覧.AllowUserToDeleteRows = False Me.一覧.AllowUserToOrderColumns = True Me.一覧.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells Me.一覧.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize Me.一覧.DbDatabase = Nothing Me.一覧.DbDriver = Nothing Me.一覧.DbPassword = Nothing Me.一覧.DbServer = Nothing Me.一覧.DbUser = Nothing Me.一覧.Location = New System.Drawing.Point(38, 35) Me.一覧.MultiSelect = False Me.一覧.Name = "一覧" Me.一覧.ReadOnly = True Me.一覧.RowTemplate.Height = 21 Me.一覧.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect Me.一覧.Size = New System.Drawing.Size(615, 189) Me.一覧.SizeBottom = 0 Me.一覧.SizeLeft = 0 Me.一覧.SizeRight = 0 Me.一覧.SizeTop = 0 Me.一覧.TabIndex = 0 ' 'Service_List ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(699, 273) Me.Controls.Add(Me.一覧) Me.Name = "Service_List" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = "サービス一覧" CType(Me.一覧, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub Friend WithEvents 一覧 As lightbox.LboxGrid End Class