サンプル
SampleControl.cs
using System;
using System.Text;
using System.Windows.Forms;
using Microsoft.ManagementConsole;
public partial class SampleControl : UserControl, IFormViewControl
{
SampleFormView selectionFormView = null;
public SampleControl()
{
InitializeComponent();
this.Dock = DockStyle.Fill;
this.listView1.View = System.Windows.Forms.View.Details;
ColumnHeader userColumnHeader = new ColumnHeader();
userColumnHeader.Text = "User";
userColumnHeader.Width = 200;
this.listView1.Columns.Add(userColumnHeader);
ColumnHeader birthdayColumnHeader = new ColumnHeader();
birthdayColumnHeader.Text = "BirthDay";
birthdayColumnHeader.Width = 200;
this.listView1.Columns.Add(birthdayColumnHeader);
}
void IFormViewControl.Initialize(FormView parentSelectionFormView)
{
selectionFormView = (SampleFormView)parentSelectionFormView;
selectionFormView.SelectionData.ActionsPaneItems.Clear();
selectionFormView.SelectionData.ActionsPaneItems.Add(
new Microsoft.ManagementConsole.Action(
"Show Selection",
"Shows the Names of the selected Items in the ListView.",
-1,
"ShowSelection"));
}
public void RefreshData(string[][] users)
{
this.listView1.Items.Clear();
foreach (string[] user in users)
{
ListViewItem listViewItem = new ListViewItem();
listViewItem.Text = user[0];
listViewItem.SubItems.Add(user[1]);
this.listView1.Items.Add(listViewItem);
}
}
public void ShowSelection()
{
if (this.listView1.SelectedItems == null)
{
MessageBox.Show("There are no items selected");
}
else
{
MessageBox.Show(
"Selected Users: \n" + this.GetSelectedUser());
}
}
/// <summary>
/// Update the context.
/// </summary>
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.listView1.SelectedItems.Count == 0)
{
this.selectionFormView.SelectionData.Clear();
}
else
{
this.selectionFormView.SelectionData.Update(
this.GetSelectedUser(),
this.listView1.SelectedItems.Count > 1, null, null);
this.selectionFormView.SelectionData.DisplayName =
((this.listView1.SelectedItems.Count == 1) ?
this.listView1.SelectedItems[0].Text : "Selected Objects");
}
}
private string GetSelectedUser()
{
StringBuilder selectedUsers = new StringBuilder();
foreach (ListViewItem listViewItem in this.listView1.SelectedItems)
{
selectedUsers.Append(listViewItem.Text + "\n");
}
return selectedUsers.ToString();
}
/// <summary>
/// Handle mouse clicks.
/// </summary>
private void listView1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
bool rightClickedOnSelection = false;
ListViewItem rightClickedItem =
this.listView1.GetItemAt(e.X, e.Y);
if (rightClickedItem == null || rightClickedItem.Selected == false)
{
rightClickedOnSelection = false;
}
else
{
rightClickedOnSelection = true;
}
this.selectionFormView.ShowContextMenu(
base.PointToScreen(e.Location), rightClickedOnSelection);
}
}
}