Adding colums to our listview.
3 using System.Collections;
4 using System.ComponentModel;
5 using System.Windows.Forms;
7 using Devices.RemoteControl;
9 namespace RemoteControlSample
12 /// Summary description for Form1.
14 public class MainForm : System.Windows.Forms.Form
17 /// Required designer variable.
19 private System.ComponentModel.Container components = null;
20 private RemoteControlDevice _remote;
21 private Label labelButtonName;
22 private Label labelDeviceName;
23 private ListView listViewEvents;
24 private ColumnHeader columnHeaderUsage;
25 private ColumnHeader columnHeaderUsagePage;
26 private ColumnHeader columnHeaderUsageCollection;
32 // Required for Windows Form Designer support
34 InitializeComponent();
37 _timer.Interval = 3000;
38 _timer.Enabled = false;
39 _timer.Tick +=new EventHandler(_timer_Tick);
43 /// Clean up any resources being used.
45 protected override void Dispose( bool disposing )
49 if (components != null)
54 base.Dispose( disposing );
57 #region Windows Form Designer generated code
59 /// Required method for Designer support - do not modify
60 /// the contents of this method with the code editor.
62 private void InitializeComponent()
64 this.labelButtonName = new System.Windows.Forms.Label();
65 this.labelDeviceName = new System.Windows.Forms.Label();
66 this.listViewEvents = new System.Windows.Forms.ListView();
67 this.columnHeaderUsage = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
68 this.columnHeaderUsagePage = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
69 this.columnHeaderUsageCollection = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
74 this.labelButtonName.AutoSize = true;
75 this.labelButtonName.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
76 this.labelButtonName.Location = new System.Drawing.Point(600, 32);
77 this.labelButtonName.Name = "labelButtonName";
78 this.labelButtonName.Size = new System.Drawing.Size(103, 20);
79 this.labelButtonName.TabIndex = 0;
80 this.labelButtonName.Text = "Button Name";
84 this.labelDeviceName.AutoSize = true;
85 this.labelDeviceName.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
86 this.labelDeviceName.Location = new System.Drawing.Point(600, 12);
87 this.labelDeviceName.Name = "labelDeviceName";
88 this.labelDeviceName.Size = new System.Drawing.Size(103, 20);
89 this.labelDeviceName.TabIndex = 1;
90 this.labelDeviceName.Text = "Device Name";
94 this.listViewEvents.Alignment = System.Windows.Forms.ListViewAlignment.Left;
95 this.listViewEvents.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
96 | System.Windows.Forms.AnchorStyles.Left)));
97 this.listViewEvents.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
98 this.listViewEvents.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
99 this.columnHeaderUsage,
100 this.columnHeaderUsagePage,
101 this.columnHeaderUsageCollection});
102 this.listViewEvents.GridLines = true;
103 this.listViewEvents.Location = new System.Drawing.Point(12, 12);
104 this.listViewEvents.Name = "listViewEvents";
105 this.listViewEvents.Size = new System.Drawing.Size(582, 369);
106 this.listViewEvents.TabIndex = 2;
107 this.listViewEvents.UseCompatibleStateImageBehavior = false;
108 this.listViewEvents.View = System.Windows.Forms.View.Details;
112 this.columnHeaderUsage.Text = "Usage";
113 this.columnHeaderUsage.Width = 180;
115 // columnHeaderUsagePage
117 this.columnHeaderUsagePage.Text = "Usage Page";
118 this.columnHeaderUsagePage.Width = 120;
120 // columnHeaderUsageCollection
122 this.columnHeaderUsageCollection.Text = "Usage Collection";
123 this.columnHeaderUsageCollection.Width = 120;
127 this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
128 this.BackColor = System.Drawing.SystemColors.Control;
129 this.ClientSize = new System.Drawing.Size(926, 393);
130 this.Controls.Add(this.listViewEvents);
131 this.Controls.Add(this.labelDeviceName);
132 this.Controls.Add(this.labelButtonName);
133 this.Name = "MainForm";
134 this.Text = "Remote Control Sample";
135 this.Load += new System.EventHandler(this.Form1_Load);
136 this.ResumeLayout(false);
137 this.PerformLayout();
140 #endregion Windows Form Designer generated code
143 /// The main entry point for the application.
148 Application.Run(new MainForm());
151 private void Form1_Load(object sender, System.EventArgs e)
153 _remote = new RemoteControlDevice(this.Handle);
154 _remote.ButtonPressed += new Devices.RemoteControl.RemoteControlDevice.RemoteControlDeviceEventHandler(_remote_ButtonPressed);
155 _remote.iHidHandler.OnHidEvent += HandleHidEvent;
158 void HandleHidEvent(object aSender, Hid.HidEvent aHidEvent)
160 listViewEvents.Items.Insert(0, aHidEvent.ListViewItem);
163 protected override void WndProc(ref Message message)
167 _remote.ProcessMessage(message);
169 base.WndProc(ref message);
172 private bool _remote_ButtonPressed(object sender, RemoteControlEventArgs e)
174 bool processed = false;
175 _timer.Enabled = false;
176 if (e.Button != RemoteControlButton.Unknown)
178 labelButtonName.Text = e.Button.ToString();
181 else if (e.MceButton != Hid.UsageTables.WindowsMediaCenterRemoteControl.Null)
183 //Display MCE button name
184 labelButtonName.Text = e.MceButton.ToString();
185 //Check if this is an HP extension
186 if (Enum.IsDefined(typeof(Hid.UsageTables.HpWindowsMediaCenterRemoteControl), (ushort)e.MceButton))
188 //Also display HP button name
189 labelButtonName.Text += " / HP:" + ((Hid.UsageTables.HpWindowsMediaCenterRemoteControl)e.MceButton).ToString();
194 else if (e.ConsumerControl != Hid.UsageTables.ConsumerControl.Null)
196 //Display consumer control name
197 labelButtonName.Text = e.ConsumerControl.ToString();
202 labelButtonName.Text = "Unknown";
204 labelDeviceName.Text = e.Device.ToString();
205 _timer.Enabled = true;
209 private void _timer_Tick(object sender, EventArgs e)
211 _timer.Enabled = false;
212 labelButtonName.Text = "Ready...";