ListViewItemSimpleForm1.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524
  1. //
  2. // Test application for the ListView class implementation
  3. //
  4. // Author:
  5. // Jordi Mas i Hernàndez, [email protected]
  6. //
  7. using System;
  8. using System.Collections;
  9. using System.Windows.Forms;
  10. using System.Drawing;
  11. public class MyListViewForm : System.Windows.Forms.Form
  12. {
  13. ColumnHeader column1 = null;
  14. ColumnHeader column2 = null;
  15. ColumnHeader column3 = null;
  16. ColumnHeader column4 = null;
  17. myListView listViewCtrl = null;
  18. ListView.SelectedListViewItemCollection sel = null;
  19. int nColInserted = 100;
  20. public static void Main(string[] args)
  21. {
  22. Application.Run(new MyListViewForm());
  23. }
  24. // Clear all columns
  25. public void ClearColumnsButton()
  26. {
  27. listViewCtrl.Columns.Clear();
  28. }
  29. public void ItemPropButton()
  30. {
  31. //IList lst = (IList) listViewCtrl.CheckedItems;
  32. Console.WriteLine ("MyListViewForm.ItemPropButton");
  33. string sText = "Item properties---------------\n";
  34. for (int i=0; i < listViewCtrl.Items.Count; i++)
  35. sText+=("Item->" + listViewCtrl.Items[i].Text + " idx: " + listViewCtrl.Items[i].Index +
  36. " Backcolor: "+ listViewCtrl.Items[i].BackColor + " Selected: " + listViewCtrl.Items[i].Selected +
  37. " Checked: " + listViewCtrl.Items[i].Checked + " Focused: " + listViewCtrl.Items[i].Focused +
  38. "\n");
  39. MessageBox.Show(sText);
  40. }
  41. public void CheckedItemButton()
  42. {
  43. listViewCtrl.CheckBoxes = !listViewCtrl.CheckBoxes;
  44. }
  45. public void ShowColumnsButton()
  46. {
  47. string sTxt = "";
  48. // How the elements are order once an element in deleted
  49. for (int i=0; i < listViewCtrl.Columns.Count; i++)
  50. sTxt+=("Column: \"" + listViewCtrl.Columns[i].Text + "\" idx: " + listViewCtrl.Columns[i].Index + " witdh:"+listViewCtrl.Columns[i].Width + "\r");
  51. MessageBox.Show(sTxt);
  52. }
  53. public void AddColumnsButton()
  54. {
  55. string sColText;
  56. sColText = "Column " + nColInserted;
  57. Console.WriteLine ("AddColumnsButton->" + sColText);
  58. listViewCtrl.Columns.Insert(0, sColText, 150, HorizontalAlignment.Left);
  59. nColInserted++;
  60. }
  61. public void ClearButton()
  62. {
  63. Console.WriteLine ("MyListViewForm.Clear");
  64. listViewCtrl.Clear();
  65. // How the elements are order once an element in deleted
  66. for (int i=0; i < listViewCtrl.Columns.Count; i++)
  67. Console.WriteLine ("Column " + listViewCtrl.Columns[i].Text + " idx: " + listViewCtrl.Columns[i].Index);
  68. // Items
  69. for (int i=0; i < listViewCtrl.Items.Count; i++)
  70. Console.WriteLine ("Item->" + listViewCtrl.Items[i].Text + " idx: " + listViewCtrl.Items[i].Index);
  71. // Selected Items
  72. for (int i=0; i < listViewCtrl.SelectedItems.Count; i++)
  73. Console.WriteLine ("Sel Item->" + listViewCtrl.SelectedItems[i].Text + " idx: " + listViewCtrl.SelectedItems[i].Index);
  74. }
  75. public void DelColumnButton()
  76. {
  77. listViewCtrl.Columns.RemoveAt(1); /*Base on 0 index*/
  78. }
  79. // Show selected items
  80. public void DumpSelButton()
  81. {
  82. if (sel==null)
  83. sel = listViewCtrl.SelectedItems;
  84. string sText;
  85. if (sel==null)
  86. sel = listViewCtrl.SelectedItems;
  87. sText = "Selected---------------\n";
  88. for (int i=0; i < sel.Count; i++)
  89. sText+=("Item->" + sel[i].Text + " idx: " + sel[i].Index + "\n");
  90. sText+= "Checked Items---------------\n";
  91. for (int i=0; i < listViewCtrl.CheckedItems.Count; i++)
  92. sText+=("Item->" + listViewCtrl.CheckedItems[i].Text + " idx: " + listViewCtrl.CheckedItems[i].Index + "\n");
  93. MessageBox.Show(sText);
  94. }
  95. public void DelItemButton()
  96. {
  97. Console.WriteLine ("Elements ");
  98. listViewCtrl.Items.RemoveAt(2);
  99. // How the elements are order once an element in deleted
  100. for (int i=0; i < listViewCtrl.Items.Count; i++)
  101. Console.WriteLine ("Items " + listViewCtrl.Items[i].Text + " idx: " + listViewCtrl.Items[i].Index);
  102. }
  103. public void ShowClassDefaults()
  104. {
  105. Console.WriteLine ("ListView defaults----");
  106. Console.WriteLine ("Sorting " + listViewCtrl.Sorting);
  107. Console.WriteLine ("Label Edit " + listViewCtrl.LabelEdit);
  108. Console.WriteLine ("FullRowSelect " + listViewCtrl.FullRowSelect);
  109. Console.WriteLine ("GridLines " + listViewCtrl.GridLines);
  110. Console.WriteLine ("AutoArrange " + listViewCtrl.AutoArrange);
  111. Console.WriteLine ("LabelWrap " + listViewCtrl.LabelWrap);
  112. Console.WriteLine ("MultiSelect " + listViewCtrl.MultiSelect);
  113. Console.WriteLine ("ForeColor " + listViewCtrl.ForeColor);
  114. Console.WriteLine ("BackColor " + listViewCtrl.BackColor);
  115. Console.WriteLine ("ItemActivation " + listViewCtrl.Activation);
  116. Console.WriteLine ("ColumnHeaderStyle " + listViewCtrl.HeaderStyle);
  117. Console.WriteLine ("BorderStyle " + listViewCtrl.BorderStyle);
  118. ListViewItem item = new ListViewItem();
  119. Console.WriteLine ("ListView item----");
  120. Console.WriteLine ("BackColor " + item.BackColor);
  121. Console.WriteLine ("ForeColor " + item.ForeColor);
  122. Console.WriteLine ("UseItemStyleForSubItems " + item.UseItemStyleForSubItems);
  123. }
  124. public MyListViewForm()
  125. {
  126. InitializeComponent();
  127. }
  128. private void ColumnSample()
  129. {
  130. listViewCtrl = new myListView();
  131. ShowClassDefaults();
  132. // Set params
  133. listViewCtrl.View = View.Details;
  134. //listViewCtrl.LabelEdit = true;
  135. listViewCtrl.AllowColumnReorder=true;
  136. listViewCtrl.FullRowSelect = true;
  137. listViewCtrl.GridLines = true;
  138. listViewCtrl.Activation = ItemActivation.OneClick;
  139. listViewCtrl.Bounds = new Rectangle(new Point(10,60), new Size(600, 550));
  140. ListViewItem item1 = new ListViewItem("item1");
  141. ListViewItem item2 = new ListViewItem("Yellow item");
  142. ListViewItem item3 = new ListViewItem("item3");
  143. ListViewItem item4 = new ListViewItem("item4");
  144. ListViewItem item5 = new ListViewItem("item5");
  145. ListViewItem item6 = new ListViewItem("Green item");
  146. ListViewItem item7 = new ListViewItem("item7");
  147. ListViewItem item8 = new ListViewItem("item8");
  148. ListViewItem item9 = new ListViewItem("item9");
  149. ListViewItem item10 = new ListViewItem("This is a long text");
  150. ListViewItem.ListViewSubItem subItem11_1 = new ListViewItem.ListViewSubItem();
  151. ListViewItem.ListViewSubItem subItem11_2 = new ListViewItem.ListViewSubItem();
  152. //ListViewItem item11 = new ListViewItem(new ListViewItem.ListViewSubItem[]{subItem11_1, subItem11_2});
  153. //listViewCtrl.Items.Add( new ListViewItem(new string[]{"boy 1", "boy 2", "boy 3"}));
  154. subItem11_1.Text = "subitem 11-1";
  155. subItem11_2.Text = "subitem 11-2";
  156. column1 = listViewCtrl.Columns.Add("Column 1", -1, HorizontalAlignment.Left);
  157. column2 = listViewCtrl.Columns.Add("Column 2", -2, HorizontalAlignment.Right);
  158. column3 = listViewCtrl.Columns.Add("Column 3", 50, HorizontalAlignment.Right);
  159. column4 = new ColumnHeader();
  160. column4.Text="Column 4";
  161. column4.Width= 150;
  162. item2.BackColor = Color.Yellow;
  163. item2.ForeColor = Color.Blue;
  164. item2.SubItems.Add("yellow-blue subitem 1");
  165. item2.SubItems.Add("yellow-blue subitem 2");
  166. item6.BackColor = Color.Green;
  167. item6.UseItemStyleForSubItems = false;
  168. ListViewItem.ListViewSubItem subItem= item6.SubItems.Add("Red subitem 1");
  169. subItem.BackColor = Color.Red;
  170. subItem.ForeColor = Color.White;
  171. listViewCtrl.Items.Add(item1);
  172. listViewCtrl.Items.Add(item2);
  173. listViewCtrl.Items.AddRange(new ListViewItem[]{item3,item4,item5,item6,item7,item8,item9,item10});
  174. item1.SubItems.Add("sub item 1");
  175. item1.SubItems.Add("sub item 2");
  176. listViewCtrl.Items.Add( new ListViewItem(new string[]{"boy 1", "boy 2", "boy 3"}));
  177. DelColumnButton button = new DelColumnButton(this);
  178. button.Location = new System.Drawing.Point(5, 10);
  179. button.Name = "button1";
  180. button.Size = new System.Drawing.Size(100, 30);
  181. button.Text = "Delete Column 2";
  182. button.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
  183. Controls.Add(button);
  184. ClearColumnsButton button5 = new ClearColumnsButton(this);
  185. button5.Location = new System.Drawing.Point(115, 10);
  186. button5.Name = "button5";
  187. button5.Size = new System.Drawing.Size(100, 30);
  188. button5.Text = "Clear Columns";
  189. button5.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
  190. Controls.Add(button5);
  191. AddColumnsButton button6 = new AddColumnsButton(this);
  192. button6.Location = new System.Drawing.Point(225, 10);
  193. button6.Name = "button6";
  194. button6.Size = new System.Drawing.Size(100, 30);
  195. button6.Text = "Add Column";
  196. button6.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
  197. Controls.Add(button6);
  198. ShowColumnsButton button7 = new ShowColumnsButton(this);
  199. button7.Location = new System.Drawing.Point(335, 10);
  200. button7.Name = "button7";
  201. button7.Size = new System.Drawing.Size(100, 30);
  202. button7.Text = "Show Columns";
  203. button7.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
  204. Controls.Add(button7);
  205. DelItemButton button2 = new DelItemButton(this);
  206. button2.Location = new System.Drawing.Point(630, 90);
  207. button2.Name = "button2";
  208. button2.Size = new System.Drawing.Size(100, 30);
  209. button2.Text = "Delete Item 3";
  210. button2.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
  211. Controls.Add(button2);
  212. CheckedItemButton button8 = new CheckedItemButton(this);
  213. button8.Location = new System.Drawing.Point(630, 50);
  214. button8.Name = "button2";
  215. button8.Size = new System.Drawing.Size(100, 30);
  216. button8.Text = "Checked on/off";
  217. button8.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
  218. Controls.Add(button8);
  219. DumpSelButton button3 = new DumpSelButton(this);
  220. button3.Location = new System.Drawing.Point(630, 120);
  221. button3.Name = "button3";
  222. button3.Size = new System.Drawing.Size(100, 30);
  223. button3.Text = "Show selection";
  224. button3.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
  225. Controls.Add(button3);
  226. ClearButton button4 = new ClearButton(this);
  227. button4.Location = new System.Drawing.Point(630, 150);
  228. button4.Name = "button4";
  229. button4.Size = new System.Drawing.Size(100, 30);
  230. button4.Text = "Clear";
  231. button4.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
  232. Controls.Add(button4);
  233. ItemPropButton button9 = new ItemPropButton(this);
  234. button9.Location = new System.Drawing.Point(630, 180);
  235. button9.Name = "button9";
  236. button9.Size = new System.Drawing.Size(100, 30);
  237. button9.Text = "Item Properties";
  238. button9.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
  239. Controls.Add(button9);
  240. Controls.Add(listViewCtrl);
  241. }
  242. private void InitializeComponent()
  243. {
  244. ClientSize = new System.Drawing.Size(750, 650);
  245. ColumnSample();
  246. return;
  247. }
  248. }
  249. // Delete column
  250. public class DelColumnButton : System.Windows.Forms.Button{
  251. MyListViewForm form = null;
  252. public DelColumnButton(MyListViewForm frm) : base()
  253. {
  254. form = frm;
  255. }
  256. /* User clicks the button*/
  257. protected override void OnClick(EventArgs e)
  258. {
  259. form.DelColumnButton();
  260. }
  261. }
  262. // Delete item
  263. public class DelItemButton : System.Windows.Forms.Button{
  264. MyListViewForm form = null;
  265. public DelItemButton(MyListViewForm frm) : base()
  266. {
  267. form = frm;
  268. }
  269. /* User clicks the button*/
  270. protected override void OnClick(EventArgs e)
  271. {
  272. form.DelItemButton();
  273. }
  274. }
  275. // Show selection
  276. public class DumpSelButton : System.Windows.Forms.Button{
  277. MyListViewForm form = null;
  278. public DumpSelButton(MyListViewForm frm) : base()
  279. {
  280. form = frm;
  281. }
  282. /* User clicks the button*/
  283. protected override void OnClick(EventArgs e)
  284. {
  285. form.DumpSelButton();
  286. }
  287. }
  288. // Show columns
  289. public class ShowColumnsButton : System.Windows.Forms.Button{
  290. MyListViewForm form = null;
  291. public ShowColumnsButton(MyListViewForm frm) : base()
  292. {
  293. form = frm;
  294. }
  295. /* User clicks the button*/
  296. protected override void OnClick(EventArgs e)
  297. {
  298. form.ShowColumnsButton();
  299. }
  300. }
  301. // ClearColumnsButton
  302. public class ClearColumnsButton : System.Windows.Forms.Button{
  303. MyListViewForm form = null;
  304. public ClearColumnsButton(MyListViewForm frm) : base()
  305. {
  306. form = frm;
  307. }
  308. /* User clicks the button*/
  309. protected override void OnClick(EventArgs e)
  310. {
  311. form.ClearColumnsButton();
  312. }
  313. }
  314. // CheckedItemButton
  315. public class CheckedItemButton : System.Windows.Forms.Button{
  316. MyListViewForm form = null;
  317. public CheckedItemButton(MyListViewForm frm) : base()
  318. {
  319. form = frm;
  320. }
  321. /* User clicks the button*/
  322. protected override void OnClick(EventArgs e)
  323. {
  324. form.CheckedItemButton();
  325. }
  326. }
  327. // ItemPropButton
  328. public class ItemPropButton : System.Windows.Forms.Button{
  329. MyListViewForm form = null;
  330. public ItemPropButton(MyListViewForm frm) : base()
  331. {
  332. form = frm;
  333. }
  334. /* User clicks the button*/
  335. protected override void OnClick(EventArgs e)
  336. {
  337. form.ItemPropButton();
  338. }
  339. }
  340. // AddColumnsButton
  341. public class AddColumnsButton : System.Windows.Forms.Button{
  342. MyListViewForm form = null;
  343. public AddColumnsButton(MyListViewForm frm) : base()
  344. {
  345. form = frm;
  346. }
  347. /* User clicks the button*/
  348. protected override void OnClick(EventArgs e)
  349. {
  350. form.AddColumnsButton();
  351. }
  352. }
  353. // ClearButton
  354. public class ClearButton : System.Windows.Forms.Button{
  355. MyListViewForm form = null;
  356. public ClearButton(MyListViewForm frm) : base()
  357. {
  358. form = frm;
  359. }
  360. /* User clicks the button*/
  361. protected override void OnClick(EventArgs e)
  362. {
  363. form.ClearButton();
  364. }
  365. }
  366. public class myListView : System.Windows.Forms.ListView
  367. {
  368. protected override void OnColumnClick(ColumnClickEventArgs e) {
  369. Console.WriteLine ("Column " + Columns[e.Column].Text + " idx: " + Columns[e.Column].Index);
  370. }
  371. protected override void OnBeforeLabelEdit(LabelEditEventArgs e){
  372. Console.WriteLine ("OnBeforeLabelEdit. CancelEdit->" + e.CancelEdit + " Item-> "+e.Item + " Label->"+e.Label );
  373. //e.CancelEdit = true;
  374. }
  375. protected override void OnAfterLabelEdit(LabelEditEventArgs e){
  376. Console.WriteLine ("OnAfterLabelEdit. CancelEdit->" + e.CancelEdit + " Item-> "+e.Item + " Label->"+e.Label );
  377. e.CancelEdit = true;
  378. }
  379. protected override void OnItemActivate(EventArgs ice){
  380. Console.WriteLine ("OnItemActivate");
  381. }
  382. }