ListViewItemSimpleForm1.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399
  1. //
  2. // Use
  3. using System;
  4. using System.Collections;
  5. using System.Windows.Forms;
  6. using System.Drawing;
  7. public class MyListViewForm : System.Windows.Forms.Form
  8. {
  9. ColumnHeader column1 = null;
  10. ColumnHeader column2 = null;
  11. ColumnHeader column3 = null;
  12. ColumnHeader column4 = null;
  13. myListView listViewCtrl = null;
  14. ListView.SelectedListViewItemCollection sel = null;
  15. public static void Main(string[] args)
  16. {
  17. Application.Run(new MyListViewForm());
  18. }
  19. public void ClearButton()
  20. {
  21. Console.WriteLine ("MyListViewForm.Clear");
  22. listViewCtrl.Clear();
  23. // How the elements are order once an element in deleted
  24. for (int i=0; i < listViewCtrl.Columns.Count; i++)
  25. Console.WriteLine ("Column " + listViewCtrl.Columns[i].Text + " idx: " + listViewCtrl.Columns[i].Index);
  26. // Items
  27. for (int i=0; i < listViewCtrl.Items.Count; i++)
  28. Console.WriteLine ("Item->" + listViewCtrl.Items[i].Text + " idx: " + listViewCtrl.Items[i].Index);
  29. // Selected Items
  30. for (int i=0; i < listViewCtrl.SelectedItems.Count; i++)
  31. Console.WriteLine ("Sel Item->" + listViewCtrl.SelectedItems[i].Text + " idx: " + listViewCtrl.SelectedItems[i].Index);
  32. }
  33. public void DelColumnButton()
  34. {
  35. listViewCtrl.Columns.RemoveAt(2);
  36. // How the elements are order once an element in deleted
  37. for (int i=0; i < listViewCtrl.Columns.Count; i++)
  38. Console.WriteLine ("Column " + listViewCtrl.Columns[i].Text + " idx: " + listViewCtrl.Columns[i].Index);
  39. }
  40. public void DumpSelButton()
  41. {
  42. // Show selected items
  43. if (sel==null)
  44. {
  45. Console.WriteLine ("Col init");
  46. sel = listViewCtrl.SelectedItems;
  47. }
  48. Console.WriteLine ("Selected---------------");
  49. for (int i=0; i < sel.Count; i++)
  50. Console.WriteLine ("Item->" + sel[i].Text + " idx: " + sel[i].Index);
  51. }
  52. public void DelItemButton()
  53. {
  54. Console.WriteLine ("Elements ");
  55. listViewCtrl.Items.RemoveAt(2);
  56. // How the elements are order once an element in deleted
  57. for (int i=0; i < listViewCtrl.Items.Count; i++)
  58. Console.WriteLine ("Items " + listViewCtrl.Items[i].Text + " idx: " + listViewCtrl.Items[i].Index);
  59. }
  60. public void ShowClassDefaults()
  61. {
  62. Console.WriteLine ("Sorting " + listViewCtrl.Sorting);
  63. Console.WriteLine ("Label Edit " + listViewCtrl.LabelEdit);
  64. Console.WriteLine ("FullRowSelect " + listViewCtrl.FullRowSelect);
  65. Console.WriteLine ("GridLines " + listViewCtrl.GridLines);
  66. Console.WriteLine ("AutoArrange " + listViewCtrl.AutoArrange);
  67. Console.WriteLine ("LabelWrap " + listViewCtrl.LabelWrap);
  68. Console.WriteLine ("MultiSelect " + listViewCtrl.MultiSelect);
  69. Console.WriteLine ("ForeColor " + listViewCtrl.ForeColor);
  70. Console.WriteLine ("BackColor " + listViewCtrl.BackColor);
  71. Console.WriteLine ("ItemActivation " + listViewCtrl.Activation);
  72. }
  73. public MyListViewForm()
  74. {
  75. InitializeComponent();
  76. }
  77. private void ColumnSample()
  78. {
  79. listViewCtrl = new myListView();
  80. ShowClassDefaults();
  81. // Set params
  82. listViewCtrl.View = View.Details;
  83. //listViewCtrl.LabelEdit = true;
  84. listViewCtrl.AllowColumnReorder=true;
  85. listViewCtrl.FullRowSelect = true;
  86. listViewCtrl.GridLines = true;
  87. listViewCtrl.Activation = ItemActivation.OneClick;
  88. listViewCtrl.Bounds = new Rectangle(new Point(10,60), new Size(600, 550));
  89. ListViewItem item1 = new ListViewItem("item1");
  90. ListViewItem item2 = new ListViewItem("item2");
  91. ListViewItem item3 = new ListViewItem("item3");
  92. ListViewItem item4 = new ListViewItem("item4");
  93. ListViewItem item5 = new ListViewItem("item5");
  94. ListViewItem item6 = new ListViewItem("item6");
  95. ListViewItem item7 = new ListViewItem("item7");
  96. ListViewItem item8 = new ListViewItem("item8");
  97. ListViewItem item9 = new ListViewItem("item9");
  98. ListViewItem item10 = new ListViewItem("item10");
  99. column1 = listViewCtrl.Columns.Add("Column 1", 100, HorizontalAlignment.Left);
  100. column2 = listViewCtrl.Columns.Add("Column 2", 75, HorizontalAlignment.Right);
  101. column3 = listViewCtrl.Columns.Add("Column 3", 50, HorizontalAlignment.Right);
  102. column4 = new ColumnHeader();
  103. column4.Text="Column 4";
  104. column4.Width= 150;
  105. listViewCtrl.Columns.AddRange(new ColumnHeader[]{column4});
  106. listViewCtrl.Items.Add(item1);
  107. listViewCtrl.Items.Add(item2);
  108. listViewCtrl.Items.AddRange(new ListViewItem[]{item3,item4,item5,item6,item7,item8,item9,item10});
  109. item1.SubItems.Add("sub item 1");
  110. item1.SubItems.Add("sub item 2");
  111. listViewCtrl.Items.Add( new ListViewItem(new string[]{"boy 1", "boy 2", "boy 3"}));
  112. DelColumnButton button = new DelColumnButton(this);
  113. button.Location = new System.Drawing.Point(5, 10);
  114. button.Name = "button1";
  115. button.Size = new System.Drawing.Size(100, 30);
  116. button.Text = "Delete Column 2";
  117. button.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
  118. Controls.Add(button);
  119. DelItemButton button2 = new DelItemButton(this);
  120. button2.Location = new System.Drawing.Point(630, 90);
  121. button2.Name = "button2";
  122. button2.Size = new System.Drawing.Size(100, 30);
  123. button2.Text = "Delete Item 3";
  124. button2.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
  125. Controls.Add(button2);
  126. DumpSelButton button3 = new DumpSelButton(this);
  127. button3.Location = new System.Drawing.Point(630, 120);
  128. button3.Name = "button3";
  129. button3.Size = new System.Drawing.Size(100, 30);
  130. button3.Text = "Show selection";
  131. button3.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
  132. Controls.Add(button3);
  133. ClearButton button4 = new ClearButton(this);
  134. button4.Location = new System.Drawing.Point(630, 150);
  135. button4.Name = "button4";
  136. button4.Size = new System.Drawing.Size(100, 30);
  137. button4.Text = "Clear";
  138. button4.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
  139. Controls.Add(button4);
  140. /*
  141. ClearButton button5 = new ClearButton(this);
  142. button4.Location = new System.Drawing.Point(630, 150);
  143. button4.Name = "button4";
  144. button4.Size = new System.Drawing.Size(100, 30);
  145. button4.Text = "Clear";
  146. button4.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
  147. Controls.Add(button4); */
  148. Controls.Add(listViewCtrl);
  149. }
  150. private void InitializeComponent()
  151. {
  152. ClientSize = new System.Drawing.Size(750, 650);
  153. ColumnSample();
  154. return;
  155. Console.WriteLine ("InitializeComponent()");
  156. // Create a new ListView control.
  157. ListView listView1 = new ListView();
  158. listView1.Bounds = new Rectangle(new Point(10,10), new Size(300,200));
  159. // Set the view to show details.
  160. //listView1.View = View.Details;
  161. // Allow the user to edit item text.
  162. //listView1.LabelEdit = true;
  163. // Allow the user to rearrange columns.
  164. //listView1.AllowColumnReorder = true;
  165. // Display check boxes.
  166. //listView1.CheckBoxes = true;
  167. // Select the item and subitems when selection is made.
  168. //listView1.FullRowSelect = true;
  169. // Display grid lines.
  170. //listView1.GridLines = true;
  171. // Sort the items in the list in ascending order.
  172. //((listView1.Sorting = SortOrder.Ascending;
  173. // Create three items and three sets of subitems for each item.
  174. //ListViewItem item1 = new ListViewItem("item1",0);
  175. ListViewItem item1 = new ListViewItem("item1");
  176. // Place a check mark next to the item.
  177. // Create columns for the items and subitems.
  178. listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);
  179. //listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left);
  180. //Add the items to the ListView.
  181. //listView1.Items.AddRange(new ListViewItem[]{item1});
  182. listView1.Items.Add(item1);
  183. //item1.Checked = true;
  184. item1.SubItems.Add("1");
  185. //item1.SubItems.Add("2");
  186. //item1.SubItems.Add("3");
  187. //Console.WriteLine ("fi InitializeComponent()" + item1.ListView);
  188. //Controls.Add(listView1);
  189. Controls.Add(listView1);
  190. Console.WriteLine ("fi InitializeComponent()");
  191. return;
  192. ListViewItem item2 = new ListViewItem("item2",1);
  193. item2.SubItems.Add("4");
  194. item2.SubItems.Add("5");
  195. item2.SubItems.Add("6");
  196. ListViewItem item3 = new ListViewItem("item3",0);
  197. // Place a check mark next to the item.
  198. item3.Checked = true;
  199. item3.SubItems.Add("7");
  200. item3.SubItems.Add("8");
  201. item3.SubItems.Add("9");
  202. // Create columns for the items and subitems.
  203. listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);
  204. listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left);
  205. listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left);
  206. listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center);
  207. //Add the items to the ListView.
  208. listView1.Items.AddRange(new ListViewItem[]{item1,item2,item3});
  209. // Create two ImageList objects.
  210. ImageList imageListSmall = new ImageList();
  211. ImageList imageListLarge = new ImageList();
  212. // Initialize the ImageList objects with bitmaps.
  213. /*imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage1.bmp"));
  214. imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage2.bmp"));
  215. imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage1.bmp"));
  216. imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage2.bmp"));*/
  217. //Assign the ImageList objects to the ListView.
  218. listView1.LargeImageList = imageListLarge;
  219. listView1.SmallImageList = imageListSmall;
  220. // Add the ListView to the control collection.
  221. Controls.Add(listView1);
  222. }
  223. }
  224. // Delete column
  225. public class DelColumnButton : System.Windows.Forms.Button{
  226. MyListViewForm form = null;
  227. public DelColumnButton(MyListViewForm frm) : base()
  228. {
  229. form = frm;
  230. }
  231. /* User clicks the button*/
  232. protected override void OnClick(EventArgs e)
  233. {
  234. form.DelColumnButton();
  235. }
  236. }
  237. // Delete item
  238. public class DelItemButton : System.Windows.Forms.Button{
  239. MyListViewForm form = null;
  240. public DelItemButton(MyListViewForm frm) : base()
  241. {
  242. form = frm;
  243. }
  244. /* User clicks the button*/
  245. protected override void OnClick(EventArgs e)
  246. {
  247. form.DelItemButton();
  248. }
  249. }
  250. // Show selection
  251. public class DumpSelButton : System.Windows.Forms.Button{
  252. MyListViewForm form = null;
  253. public DumpSelButton(MyListViewForm frm) : base()
  254. {
  255. form = frm;
  256. }
  257. /* User clicks the button*/
  258. protected override void OnClick(EventArgs e)
  259. {
  260. form.DumpSelButton();
  261. }
  262. }
  263. // ClearButton
  264. public class ClearButton : System.Windows.Forms.Button{
  265. MyListViewForm form = null;
  266. public ClearButton(MyListViewForm frm) : base()
  267. {
  268. form = frm;
  269. }
  270. /* User clicks the button*/
  271. protected override void OnClick(EventArgs e)
  272. {
  273. form.ClearButton();
  274. }
  275. }
  276. public class myListView : System.Windows.Forms.ListView
  277. {
  278. protected override void OnColumnClick(ColumnClickEventArgs e) {
  279. Console.WriteLine ("Column " + Columns[e.Column].Text + " idx: " + Columns[e.Column].Index);
  280. }
  281. protected override void OnBeforeLabelEdit(LabelEditEventArgs e){
  282. Console.WriteLine ("OnBeforeLabelEdit. CancelEdit->" + e.CancelEdit + " Item-> "+e.Item + " Label->"+e.Label );
  283. //e.CancelEdit = true;
  284. }
  285. protected override void OnAfterLabelEdit(LabelEditEventArgs e){
  286. Console.WriteLine ("OnAfterLabelEdit. CancelEdit->" + e.CancelEdit + " Item-> "+e.Item + " Label->"+e.Label );
  287. e.CancelEdit = true;
  288. }
  289. protected override void OnItemActivate(EventArgs ice){
  290. Console.WriteLine ("OnItemActivate");
  291. }
  292. }