FormHandleTest.cs 40 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204
  1. //
  2. // FormTest.cs: Test cases for Form.
  3. //
  4. // Author:
  5. // Ritvik Mayank ([email protected])
  6. //
  7. // (C) 2005 Novell, Inc. (http://www.novell.com)
  8. //
  9. using System;
  10. using System.ComponentModel;
  11. using System.Drawing;
  12. using System.Reflection;
  13. using System.Windows.Forms;
  14. using NUnit.Framework;
  15. using CategoryAttribute = NUnit.Framework.CategoryAttribute;
  16. namespace MonoTests.System.Windows.Forms
  17. {
  18. [TestFixture]
  19. public class FormHandleTest
  20. {
  21. [Test]
  22. public void TestConstructors ()
  23. {
  24. Form c = new Form ();
  25. Assert.IsFalse (c.IsHandleCreated, "A1");
  26. }
  27. [Test]
  28. public void TestContextMenu ()
  29. {
  30. Form c = new Form ();
  31. c.ContextMenu = new ContextMenu ();
  32. c.ContextMenu.MenuItems.Add (new MenuItem ());
  33. c.ContextMenu.MenuItems [0].Text = "New";
  34. Assert.IsFalse (c.IsHandleCreated);
  35. }
  36. [Test] // bug #81272
  37. public void TestMenu ()
  38. {
  39. Form c = new Form ();
  40. c.Menu = new MainMenu ();
  41. c.Menu.MenuItems.Add (new MenuItem ());
  42. c.Menu.MenuItems [0].Text = "New";
  43. Assert.IsFalse (c.IsHandleCreated);
  44. }
  45. [Test]
  46. public void TestPublicProperties ()
  47. {
  48. // This long, carpal-tunnel syndrome inducing test shows us that
  49. // the following properties cause the Handle to be created:
  50. // - AccessibilityObject [get]
  51. // - Capture [set]
  52. // - Handle [get]
  53. // - Visible [set]
  54. Form c = new Form ();
  55. // A
  56. object o = c.AccessibilityObject;
  57. Assert.IsTrue (c.IsHandleCreated, "A0");
  58. c = new Form ();
  59. o = c.AccessibleDefaultActionDescription;
  60. c.AccessibleDefaultActionDescription = "playdoh";
  61. Assert.IsFalse (c.IsHandleCreated, "A1");
  62. o = c.AccessibleDescription;
  63. c.AccessibleDescription = "more playdoh!";
  64. Assert.IsFalse (c.IsHandleCreated, "A2");
  65. o = c.AccessibleName;
  66. c.AccessibleName = "playdoh fun factory";
  67. Assert.IsFalse (c.IsHandleCreated, "A3");
  68. o = c.AccessibleRole;
  69. c.AccessibleRole = AccessibleRole.Border;
  70. Assert.IsFalse (c.IsHandleCreated, "A4");
  71. o = c.AllowDrop;
  72. c.AllowDrop = true;
  73. Assert.IsFalse (c.IsHandleCreated, "A5");
  74. // If we don't reset the control, handle creation will fail
  75. // because AllowDrop requires STAThread, which Nunit doesn't do
  76. c = new Form ();
  77. o = c.Anchor;
  78. c.Anchor = AnchorStyles.Right;
  79. Assert.IsFalse (c.IsHandleCreated, "A6");
  80. #if !__MonoCS__ && NET_2_0
  81. o = c.AutoScrollOffset;
  82. c.AutoScrollOffset = new Point (40, 40);
  83. Assert.IsFalse (c.IsHandleCreated, "A7");
  84. #endif
  85. #if NET_2_0
  86. o = c.AutoSize;
  87. c.AutoSize = true;
  88. Assert.IsFalse (c.IsHandleCreated, "A8");
  89. #endif
  90. // A - Form
  91. o = c.AcceptButton;
  92. c.AcceptButton = null;
  93. Assert.IsFalse (c.IsHandleCreated, "FA1");
  94. o = c.ActiveControl;
  95. c.ActiveControl = null;
  96. Assert.IsFalse (c.IsHandleCreated, "FA2");
  97. o = c.ActiveMdiChild;
  98. Assert.IsFalse (c.IsHandleCreated, "FA3");
  99. o = c.AllowTransparency;
  100. c.AllowTransparency = !c.AllowTransparency;
  101. Assert.IsFalse (c.IsHandleCreated, "FA4");
  102. #if NET_2_0
  103. o = c.AutoScaleDimensions;
  104. c.AutoScaleDimensions = SizeF.Empty;
  105. Assert.IsFalse (c.IsHandleCreated, "FA5");
  106. o = c.AutoScaleMode;
  107. c.AutoScaleMode = AutoScaleMode.Dpi;
  108. Assert.IsFalse (c.IsHandleCreated, "FA6");
  109. #endif
  110. o = c.AutoScroll;
  111. c.AutoScroll = !c.AutoScroll;
  112. Assert.IsFalse (c.IsHandleCreated, "FA7");
  113. o = c.AutoScrollMargin;
  114. c.AutoScrollMargin = new Size (c.AutoScrollMargin.Width + 1, c.AutoScrollMargin.Height + 1);
  115. Assert.IsFalse (c.IsHandleCreated, "FA8");
  116. o = c.AutoScrollMinSize;
  117. c.AutoScrollMinSize = new Size (c.AutoScrollMinSize.Width + 1, c.AutoScrollMinSize.Height + 1);
  118. Assert.IsFalse (c.IsHandleCreated, "FA9");
  119. #if NET_2_0 && !__MonoCS__
  120. o = c.AutoScrollOffset;
  121. c.AutoScrollOffset = new Point (c.AutoScrollOffset.X + 1, c.AutoScrollOffset.Y + 1);
  122. Assert.IsFalse (c.IsHandleCreated, "FA10");
  123. #endif
  124. o = c.AutoScrollPosition;
  125. c.AutoScrollPosition = new Point (c.AutoScrollPosition.X + 1, c.AutoScrollPosition.Y + 1);
  126. Assert.IsFalse (c.IsHandleCreated, "FA11");
  127. #if NET_2_0
  128. o = c.AutoSize;
  129. c.AutoSize = !c.AutoSize;
  130. Assert.IsFalse (c.IsHandleCreated, "FA12");
  131. #if !__MonoCS__
  132. o = c.AutoSizeMode;
  133. c.AutoSizeMode = AutoSizeMode.GrowAndShrink;
  134. Assert.IsFalse (c.IsHandleCreated, "FA13");
  135. #endif
  136. o = c.AutoValidate;
  137. c.AutoValidate = AutoValidate.EnableAllowFocusChange;
  138. Assert.IsFalse (c.IsHandleCreated, "FA14");
  139. #endif
  140. // B
  141. o = c.BackColor;
  142. c.BackColor = Color.Green;
  143. Assert.IsFalse (c.IsHandleCreated, "A9");
  144. o = c.BackgroundImage;
  145. c.BackgroundImage = new Bitmap (1, 1);
  146. Assert.IsFalse (c.IsHandleCreated, "A10");
  147. #if NET_2_0
  148. o = c.BackgroundImageLayout;
  149. c.BackgroundImageLayout = ImageLayout.Stretch;
  150. Assert.IsFalse (c.IsHandleCreated, "A11");
  151. #endif
  152. o = c.BindingContext;
  153. c.BindingContext = new BindingContext ();
  154. Assert.IsFalse (c.IsHandleCreated, "A12");
  155. o = c.Bottom;
  156. Assert.IsFalse (c.IsHandleCreated, "A13");
  157. o = c.Bounds;
  158. c.Bounds = new Rectangle (0, 0, 12, 12);
  159. Assert.IsFalse (c.IsHandleCreated, "A14");
  160. // B - Form
  161. o = c.BindingContext;
  162. c.BindingContext = null;
  163. Assert.IsFalse (c.IsHandleCreated, "FB1");
  164. // C
  165. o = c.CanFocus;
  166. Assert.IsFalse (c.IsHandleCreated, "A15");
  167. o = c.CanSelect;
  168. Assert.IsFalse (c.IsHandleCreated, "A16");
  169. o = c.Capture;
  170. Assert.IsFalse (c.IsHandleCreated, "A17a");
  171. c.Capture = true;
  172. Assert.IsTrue (c.IsHandleCreated, "A17b");
  173. c = new Form ();
  174. o = c.CausesValidation;
  175. c.CausesValidation = false;
  176. Assert.IsFalse (c.IsHandleCreated, "A18");
  177. o = c.ClientRectangle;
  178. Assert.IsFalse (c.IsHandleCreated, "A19");
  179. o = c.ClientSize;
  180. c.ClientSize = new Size (30, 30);
  181. Assert.IsFalse (c.IsHandleCreated, "A20");
  182. o = c.CompanyName;
  183. Assert.IsFalse (c.IsHandleCreated, "A21");
  184. o = c.Container;
  185. Assert.IsFalse (c.IsHandleCreated, "A22");
  186. o = c.ContainsFocus;
  187. Assert.IsFalse (c.IsHandleCreated, "A23");
  188. o = c.ContextMenu;
  189. c.ContextMenu = new ContextMenu ();
  190. Assert.IsFalse (c.IsHandleCreated, "A24");
  191. #if NET_2_0
  192. o = c.ContextMenuStrip;
  193. c.ContextMenuStrip = new ContextMenuStrip ();
  194. Assert.IsFalse (c.IsHandleCreated, "A25");
  195. #endif
  196. o = c.Controls;
  197. Assert.IsFalse (c.IsHandleCreated, "A26");
  198. o = c.Created;
  199. Assert.IsFalse (c.IsHandleCreated, "A27");
  200. o = c.Cursor;
  201. c.Cursor = Cursors.Arrow;
  202. Assert.IsFalse (c.IsHandleCreated, "A28");
  203. // C - Form
  204. o = c.CancelButton;
  205. c.CancelButton = null;
  206. Assert.IsFalse (c.IsHandleCreated, "FC1");
  207. o = c.ClientSize;
  208. c.ClientSize = new Size (c.ClientSize.Width + 1, c.ClientSize.Height + 1);
  209. Assert.IsFalse (c.IsHandleCreated, "FC2");
  210. o = c.Container;
  211. Assert.IsFalse (c.IsHandleCreated, "FC3");
  212. o = c.ControlBox;
  213. c.ControlBox = !c.ControlBox;
  214. Assert.IsFalse (c.IsHandleCreated, "FC4");
  215. #if NET_2_0
  216. o = c.CurrentAutoScaleDimensions;
  217. Assert.IsFalse (c.IsHandleCreated, "FC5");
  218. #endif
  219. // D
  220. o = c.DataBindings;
  221. Assert.IsFalse (c.IsHandleCreated, "A29");
  222. o = c.DisplayRectangle;
  223. Assert.IsFalse (c.IsHandleCreated, "A30");
  224. o = c.Disposing;
  225. Assert.IsFalse (c.IsHandleCreated, "A31");
  226. o = c.Dock;
  227. c.Dock = DockStyle.Fill;
  228. Assert.IsFalse (c.IsHandleCreated, "A32");
  229. // D - Form
  230. o = c.DataBindings;
  231. Assert.IsFalse (c.IsHandleCreated, "FD6");
  232. o = c.DesktopBounds;
  233. c.DesktopBounds = new Rectangle (3, 5, c.DesktopBounds.Width + 1, c.DesktopBounds.Height + 1);
  234. Assert.IsFalse (c.IsHandleCreated, "FD7");
  235. o = c.DesktopLocation;
  236. c.DesktopLocation = c.DesktopLocation + new Size (1, 1);
  237. Assert.IsFalse (c.IsHandleCreated, "FD8");
  238. o = c.DialogResult;
  239. c.DialogResult = DialogResult.Abort;
  240. Assert.IsFalse (c.IsHandleCreated, "FD9");
  241. o = c.DisplayRectangle;
  242. Assert.IsFalse (c.IsHandleCreated, "FD10");
  243. o = c.Disposing;
  244. Assert.IsFalse (c.IsHandleCreated, "FD11");
  245. o = c.Dock;
  246. c.Dock = DockStyle.Right;
  247. Assert.IsFalse (c.IsHandleCreated, "FD12");
  248. // E-H
  249. o = c.Enabled;
  250. c.Enabled = false;
  251. Assert.IsFalse (c.IsHandleCreated, "A33");
  252. c = new Form (); //Reset just in case enable = false affects things
  253. o = c.Focused;
  254. Assert.IsFalse (c.IsHandleCreated, "A34");
  255. o = c.Font;
  256. c.Font = new Font (c.Font, FontStyle.Bold);
  257. Assert.IsFalse (c.IsHandleCreated, "A35");
  258. o = c.ForeColor;
  259. c.ForeColor = Color.Green;
  260. Assert.IsFalse (c.IsHandleCreated, "A36");
  261. o = c.Handle;
  262. Assert.IsTrue (c.IsHandleCreated, "A37");
  263. c = new Form ();
  264. o = c.HasChildren;
  265. Assert.IsFalse (c.IsHandleCreated, "A38");
  266. o = c.Height;
  267. c.Height = 12;
  268. Assert.IsFalse (c.IsHandleCreated, "A39");
  269. // E-H - Form
  270. o = c.FormBorderStyle;
  271. c.FormBorderStyle = FormBorderStyle.FixedToolWindow;
  272. Assert.IsFalse (c.IsHandleCreated, "FF1");
  273. o = c.HelpButton;
  274. c.HelpButton = !c.HelpButton;
  275. Assert.IsFalse (c.IsHandleCreated, "FH1");
  276. #if NET_2_0 && !__MonoCS__
  277. o = c.HorizontalScroll;
  278. Assert.IsFalse (c.IsHandleCreated, "FH2");
  279. #endif
  280. // I - L
  281. c.ImeMode = ImeMode.On;
  282. Assert.IsFalse (c.IsHandleCreated, "A40");
  283. o = c.InvokeRequired;
  284. Assert.IsFalse (c.IsHandleCreated, "A41");
  285. o = c.IsAccessible;
  286. Assert.IsFalse (c.IsHandleCreated, "A42");
  287. o = c.IsDisposed;
  288. Assert.IsFalse (c.IsHandleCreated, "A43");
  289. #if !__MonoCS__ && NET_2_0
  290. o = c.IsMirrored;
  291. Assert.IsFalse (c.IsHandleCreated, "A44");
  292. #endif
  293. #if NET_2_0
  294. o = c.LayoutEngine;
  295. Assert.IsFalse (c.IsHandleCreated, "A45");
  296. #endif
  297. o = c.Left;
  298. c.Left = 15;
  299. Assert.IsFalse (c.IsHandleCreated, "A46");
  300. o = c.Location;
  301. c.Location = new Point (20, 20);
  302. Assert.IsFalse (c.IsHandleCreated, "A47");
  303. // I - L - Form
  304. o = c.Icon;
  305. c.Icon = null;
  306. Assert.IsFalse (c.IsHandleCreated, "FI1");
  307. o = c.IsMdiChild;
  308. Assert.IsFalse (c.IsHandleCreated, "FI2");
  309. o = c.IsMdiContainer;
  310. c.IsMdiContainer = false;
  311. Assert.IsFalse (c.IsHandleCreated, "FI3");
  312. o = c.IsRestrictedWindow;
  313. Assert.IsFalse (c.IsHandleCreated, "FI4");
  314. o = c.KeyPreview;
  315. c.KeyPreview = !c.KeyPreview;
  316. Assert.IsFalse (c.IsHandleCreated, "FK1");
  317. o = c.Location;
  318. c.Location = c.Location + new Size (1, 1);
  319. Assert.IsFalse (c.IsHandleCreated, "FL1");
  320. // M - N
  321. #if NET_2_0
  322. o = c.Margin;
  323. c.Margin = new Padding (6);
  324. Assert.IsFalse (c.IsHandleCreated, "A48");
  325. o = c.MaximumSize;
  326. c.MaximumSize = new Size (500, 500);
  327. Assert.IsFalse (c.IsHandleCreated, "A49");
  328. o = c.MinimumSize;
  329. c.MinimumSize = new Size (100, 100);
  330. Assert.IsFalse (c.IsHandleCreated, "A50");
  331. #endif
  332. o = c.Name;
  333. c.Name = "web";
  334. Assert.IsFalse (c.IsHandleCreated, "A51");
  335. #if NET_2_0
  336. // M - O - Form
  337. o = c.MainMenuStrip;
  338. c.MainMenuStrip = null;
  339. Assert.IsFalse (c.IsHandleCreated, "FM1");
  340. #endif
  341. o = c.MaximizeBox;
  342. c.MaximizeBox = !c.MaximizeBox;
  343. Assert.IsFalse (c.IsHandleCreated, "FM2");
  344. o = c.MaximumSize;
  345. c.MaximumSize = c.MaximumSize + new Size (1, 1);
  346. Assert.IsFalse (c.IsHandleCreated, "FM3");
  347. o = c.MdiChildren;
  348. Assert.IsFalse (c.IsHandleCreated, "FM4");
  349. o = c.MdiParent;
  350. c.MdiParent = null;
  351. Assert.IsFalse (c.IsHandleCreated, "FM5");
  352. o = c.Menu;
  353. c.Menu = null;
  354. Assert.IsFalse (c.IsHandleCreated, "FM6");
  355. o = c.MergedMenu;
  356. Assert.IsFalse (c.IsHandleCreated, "FM7");
  357. o = c.MinimizeBox;
  358. c.MinimizeBox = !c.MinimizeBox;
  359. Assert.IsFalse (c.IsHandleCreated, "FM8");
  360. o = c.MinimumSize;
  361. c.MinimumSize = c.MinimumSize + new Size (1, 1);
  362. Assert.IsFalse (c.IsHandleCreated, "FM9");
  363. o = c.Modal;
  364. Assert.IsFalse (c.IsHandleCreated, "FM10");
  365. o = c.Opacity;
  366. c.Opacity = 0.9;
  367. Assert.IsFalse (c.IsHandleCreated, "FO1");
  368. o = c.OwnedForms;
  369. Assert.IsFalse (c.IsHandleCreated, "FO2");
  370. o = c.Owner;
  371. c.Owner = null;
  372. Assert.IsFalse (c.IsHandleCreated, "FO3");
  373. // P - R
  374. #if NET_2_0
  375. o = c.Padding;
  376. c.Padding = new Padding (4);
  377. Assert.IsFalse (c.IsHandleCreated, "A52");
  378. #endif
  379. o = c.Parent;
  380. c.TopLevel = false;
  381. c.Parent = new Form ();
  382. Assert.IsFalse (c.IsHandleCreated, "A53");
  383. c = new Form ();
  384. #if NET_2_0
  385. o = c.PreferredSize;
  386. Assert.IsFalse (c.IsHandleCreated, "A54");
  387. #endif
  388. o = c.ProductName;
  389. Assert.IsFalse (c.IsHandleCreated, "A55");
  390. o = c.ProductVersion;
  391. Assert.IsFalse (c.IsHandleCreated, "A56");
  392. o = c.RecreatingHandle;
  393. Assert.IsFalse (c.IsHandleCreated, "A57");
  394. o = c.Region;
  395. c.Region = new Region (new Rectangle (0, 0, 177, 177));
  396. Assert.IsFalse (c.IsHandleCreated, "A58");
  397. o = c.Right;
  398. Assert.IsFalse (c.IsHandleCreated, "A59");
  399. o = c.RightToLeft;
  400. c.RightToLeft = RightToLeft.Yes;
  401. Assert.IsFalse (c.IsHandleCreated, "A60");
  402. // P - R - Form
  403. o = c.ParentForm;
  404. Assert.IsFalse (c.IsHandleCreated, "FP1");
  405. #if NET_2_0 && !__MonoCS__
  406. o = c.RestoreBounds;
  407. Assert.IsFalse (c.IsHandleCreated, "FR1");
  408. #endif
  409. // S - W
  410. o = c.Site;
  411. Assert.IsFalse (c.IsHandleCreated, "A61");
  412. o = c.Size;
  413. c.Size = new Size (188, 188);
  414. Assert.IsFalse (c.IsHandleCreated, "A62");
  415. o = c.TabIndex;
  416. c.TabIndex = 5;
  417. Assert.IsFalse (c.IsHandleCreated, "A63");
  418. o = c.Tag;
  419. c.Tag = "moooooooo";
  420. Assert.IsFalse (c.IsHandleCreated, "A64");
  421. o = c.Text;
  422. c.Text = "meoooowww";
  423. Assert.IsFalse (c.IsHandleCreated, "A65");
  424. o = c.Top;
  425. c.Top = 16;
  426. Assert.IsFalse (c.IsHandleCreated, "A66");
  427. o = c.TopLevelControl;
  428. Assert.IsFalse (c.IsHandleCreated, "A67");
  429. #if !__MonoCS__ && NET_2_0
  430. o = c.UseWaitCursor;
  431. c.UseWaitCursor = true;
  432. Assert.IsFalse (c.IsHandleCreated, "A68");
  433. #endif
  434. o = c.Visible;
  435. Assert.IsFalse (c.IsHandleCreated, "A69");
  436. c.Visible = true;
  437. Assert.IsTrue (c.IsHandleCreated, "A69-b");
  438. c.Dispose ();
  439. c = new Form ();
  440. o = c.Width;
  441. c.Width = 190;
  442. Assert.IsFalse (c.IsHandleCreated, "A70");
  443. o = c.WindowTarget;
  444. Assert.IsFalse (c.IsHandleCreated, "A71");
  445. // S - W - Form
  446. #if NET_2_0
  447. o = c.ShowIcon;
  448. c.ShowIcon = !c.ShowIcon;
  449. Assert.IsFalse (c.IsHandleCreated, "FS1");
  450. #endif
  451. o = c.ShowInTaskbar;
  452. c.ShowInTaskbar = !c.ShowInTaskbar;
  453. Assert.IsFalse (c.IsHandleCreated, "FS2");
  454. o = c.Size;
  455. c.Size = c.Size + new Size (1, 1);
  456. Assert.IsFalse (c.IsHandleCreated, "FS3");
  457. o = c.SizeGripStyle;
  458. c.SizeGripStyle = SizeGripStyle.Show;
  459. Assert.IsFalse (c.IsHandleCreated, "FS4");
  460. o = c.StartPosition;
  461. c.StartPosition = FormStartPosition.Manual;
  462. Assert.IsFalse (c.IsHandleCreated, "FS5");
  463. o = c.Text;
  464. c.Text = "hooray!";
  465. Assert.IsFalse (c.IsHandleCreated, "FT1");
  466. o = c.TopLevel;
  467. c.TopLevel = true;
  468. Assert.IsFalse (c.IsHandleCreated, "FT2-a");
  469. o = c.TopLevel;
  470. c.TopLevel = false;
  471. Assert.IsFalse (c.IsHandleCreated, "FT2-b");
  472. o = c.TopMost;
  473. c.TopMost = !c.TopMost;
  474. Assert.IsFalse (c.IsHandleCreated, "FT3");
  475. o = c.TransparencyKey;
  476. c.TransparencyKey = Color.BurlyWood;
  477. Assert.IsFalse (c.IsHandleCreated, "FT4");
  478. #if NET_2_0 && !__MonoCS__
  479. o = c.VerticalScroll;
  480. Assert.IsFalse (c.IsHandleCreated, "FV1");
  481. #endif
  482. o = c.WindowState;
  483. c.WindowState = FormWindowState.Maximized;
  484. Assert.IsFalse (c.IsHandleCreated, "FW1");
  485. TestHelper.RemoveWarning (o);
  486. }
  487. [Test]
  488. public void TestProtectedProperties ()
  489. {
  490. // Not a surprise, but none of these cause handle creation.
  491. // Included just to absolutely certain.
  492. ProtectedPropertyForm c = new ProtectedPropertyForm ();
  493. object o;
  494. #if !__MonoCS__ && NET_2_0
  495. o = c.PublicCanRaiseEvents;
  496. Assert.IsFalse (c.IsHandleCreated, "A1");
  497. #endif
  498. o = c.PublicCreateParams;
  499. Assert.IsFalse (c.IsHandleCreated, "A2");
  500. #if NET_2_0
  501. o = c.PublicDefaultCursor;
  502. Assert.IsFalse (c.IsHandleCreated, "A3");
  503. #endif
  504. o = c.PublicDefaultImeMode;
  505. Assert.IsFalse (c.IsHandleCreated, "A4");
  506. #if NET_2_0
  507. o = c.PublicDefaultMargin;
  508. Assert.IsFalse (c.IsHandleCreated, "A5");
  509. o = c.PublicDefaultMaximumSize;
  510. Assert.IsFalse (c.IsHandleCreated, "A6");
  511. o = c.PublicDefaultMinimumSize;
  512. Assert.IsFalse (c.IsHandleCreated, "A7");
  513. o = c.PublicDefaultPadding;
  514. Assert.IsFalse (c.IsHandleCreated, "A8");
  515. o = c.PublicDefaultSize;
  516. Assert.IsFalse (c.IsHandleCreated, "A9");
  517. o = c.PublicDoubleBuffered;
  518. c.PublicDoubleBuffered = !c.PublicDoubleBuffered;
  519. Assert.IsFalse (c.IsHandleCreated, "A10");
  520. #endif
  521. o = c.PublicFontHeight;
  522. c.PublicFontHeight = c.PublicFontHeight + 1;
  523. Assert.IsFalse (c.IsHandleCreated, "A11");
  524. o = c.PublicRenderRightToLeft;
  525. Assert.IsFalse (c.IsHandleCreated, "A12");
  526. o = c.PublicResizeRedraw;
  527. c.PublicResizeRedraw = !c.PublicResizeRedraw;
  528. Assert.IsFalse (c.IsHandleCreated, "A13");
  529. #if !__MonoCS__ && NET_2_0
  530. o = c.PublicScaleChildren;
  531. Assert.IsFalse (c.IsHandleCreated, "A14");
  532. #endif
  533. o = c.PublicShowFocusCues;
  534. Assert.IsFalse (c.IsHandleCreated, "A15");
  535. o = c.PublicShowKeyboardCues;
  536. Assert.IsFalse (c.IsHandleCreated, "A16");
  537. #if NET_2_0
  538. o = c.PublicAutoScaleFactor;
  539. Assert.IsFalse (c.IsHandleCreated, "F1");
  540. #endif
  541. o = c.PublicDesignMode;
  542. Assert.IsFalse (c.IsHandleCreated, "F2");
  543. o = c.PublicEvents;
  544. Assert.IsFalse (c.IsHandleCreated, "F3");
  545. o = c.PublicHScroll;
  546. c.PublicHScroll = !c.PublicHScroll;
  547. Assert.IsFalse (c.IsHandleCreated, "F4");
  548. o = c.PublicMaximizedBounds;
  549. c.PublicMaximizedBounds = new Rectangle (1, 1, 1, 1);
  550. Assert.IsFalse (c.IsHandleCreated, "F5");
  551. #if NET_2_0
  552. o = c.PublicShowWithoutActivation;
  553. Assert.IsFalse (c.IsHandleCreated, "F6");
  554. #endif
  555. o = c.PublicVScroll;
  556. c.PublicVScroll = !c.PublicVScroll;
  557. Assert.IsFalse (c.IsHandleCreated, "F7");
  558. TestHelper.RemoveWarning (o);
  559. }
  560. Form invokeform = new Form ();
  561. [Test]
  562. public void TestPublicMethods ()
  563. {
  564. // Public Methods that force Handle creation:
  565. // - CreateGraphics ()
  566. // - GetChildAtPoint ()
  567. // - Invoke, BeginInvoke throws InvalidOperationException if Handle has not been created
  568. // - PointToClient ()
  569. // - PointToScreen ()
  570. // - RectangleToClient ()
  571. // - RectangleToScreen ()
  572. // - Select ()
  573. // - Show (IWin32Window)
  574. // Notes:
  575. // - CreateControl does NOT force Handle creation!
  576. Form c = new Form ();
  577. c.BringToFront ();
  578. Assert.IsFalse (c.IsHandleCreated, "A1");
  579. c.Contains (new Form ());
  580. Assert.IsFalse (c.IsHandleCreated, "A2");
  581. c.CreateControl ();
  582. Assert.IsFalse (c.IsHandleCreated, "A3");
  583. c = new Form ();
  584. Graphics g = c.CreateGraphics ();
  585. g.Dispose ();
  586. Assert.IsTrue (c.IsHandleCreated, "A4");
  587. c.Dispose ();
  588. c = new Form ();
  589. c.Dispose ();
  590. Assert.IsFalse (c.IsHandleCreated, "A5");
  591. c = new Form ();
  592. // This is weird, it causes a form to appear that won't go away until you move the mouse over it,
  593. // but it doesn't create a handle??
  594. //DragDropEffects d = c.DoDragDrop ("yo", DragDropEffects.None);
  595. //Assert.IsFalse (c.IsHandleCreated, "A6");
  596. //Assert.AreEqual (DragDropEffects.None, d, "A6b");
  597. //Bitmap b = new Bitmap (100, 100);
  598. //c.DrawToBitmap (b, new Rectangle (0, 0, 100, 100));
  599. //Assert.IsFalse (c.IsHandleCreated, "A7");
  600. //b.Dispose ();
  601. c.FindForm ();
  602. Assert.IsFalse (c.IsHandleCreated, "A8");
  603. c.Focus ();
  604. Assert.IsFalse (c.IsHandleCreated, "A9");
  605. c.GetChildAtPoint (new Point (10, 10));
  606. Assert.IsTrue (c.IsHandleCreated, "A10");
  607. c.Dispose ();
  608. c = new Form ();
  609. c.GetContainerControl ();
  610. Assert.IsFalse (c.IsHandleCreated, "A11");
  611. c = new Form ();
  612. c.GetNextControl (new Control (), true);
  613. Assert.IsFalse (c.IsHandleCreated, "A12");
  614. #if NET_2_0
  615. c.GetPreferredSize (Size.Empty);
  616. Assert.IsFalse (c.IsHandleCreated, "A13");
  617. #endif
  618. c.Hide ();
  619. Assert.IsFalse (c.IsHandleCreated, "A14");
  620. c.Invalidate ();
  621. Assert.IsFalse (c.IsHandleCreated, "A15");
  622. //c.Invoke (new InvokeDelegate (InvokeMethod));
  623. //Assert.IsFalse (c.IsHandleCreated, "A16");
  624. c.PerformLayout ();
  625. Assert.IsFalse (c.IsHandleCreated, "A17");
  626. c.PointToClient (new Point (100, 100));
  627. Assert.IsTrue (c.IsHandleCreated, "A18");
  628. c = new Form ();
  629. c.PointToScreen (new Point (100, 100));
  630. Assert.IsTrue (c.IsHandleCreated, "A19");
  631. c = new Form ();
  632. //c.PreProcessControlMessage ???
  633. //c.PreProcessMessage ???
  634. c.RectangleToClient (new Rectangle (0, 0, 100, 100));
  635. Assert.IsTrue (c.IsHandleCreated, "A20");
  636. c = new Form ();
  637. c.RectangleToScreen (new Rectangle (0, 0, 100, 100));
  638. Assert.IsTrue (c.IsHandleCreated, "A21");
  639. c = new Form ();
  640. c.Refresh ();
  641. Assert.IsFalse (c.IsHandleCreated, "A22");
  642. c.ResetBackColor ();
  643. Assert.IsFalse (c.IsHandleCreated, "A23");
  644. c.ResetBindings ();
  645. Assert.IsFalse (c.IsHandleCreated, "A24");
  646. c.ResetCursor ();
  647. Assert.IsFalse (c.IsHandleCreated, "A25");
  648. c.ResetFont ();
  649. Assert.IsFalse (c.IsHandleCreated, "A26");
  650. c.ResetForeColor ();
  651. Assert.IsFalse (c.IsHandleCreated, "A27");
  652. c.ResetImeMode ();
  653. Assert.IsFalse (c.IsHandleCreated, "A28");
  654. c.ResetRightToLeft ();
  655. Assert.IsFalse (c.IsHandleCreated, "A29");
  656. c.ResetText ();
  657. Assert.IsFalse (c.IsHandleCreated, "A30");
  658. c.SuspendLayout ();
  659. Assert.IsFalse (c.IsHandleCreated, "A31");
  660. c.ResumeLayout ();
  661. Assert.IsFalse (c.IsHandleCreated, "A32");
  662. #if NET_2_0
  663. c.Scale (new SizeF (1.5f, 1.5f));
  664. Assert.IsFalse (c.IsHandleCreated, "A33");
  665. #endif
  666. c.Select ();
  667. Assert.IsTrue (c.IsHandleCreated, "A34");
  668. c = new Form ();
  669. c.SelectNextControl (new Control (), true, true, true, true);
  670. Assert.IsFalse (c.IsHandleCreated, "A35");
  671. c.SetBounds (0, 0, 100, 100);
  672. Assert.IsFalse (c.IsHandleCreated, "A36");
  673. c.Update ();
  674. Assert.IsFalse (c.IsHandleCreated, "A37");
  675. // Form
  676. c.Activate ();
  677. Assert.IsFalse (c.IsHandleCreated, "F1");
  678. c.AddOwnedForm (new Form ());
  679. Assert.IsFalse (c.IsHandleCreated, "F2");
  680. c.Close ();
  681. Assert.IsFalse (c.IsHandleCreated, "F3");
  682. c.Hide ();
  683. Assert.IsFalse (c.IsHandleCreated, "F4");
  684. c.LayoutMdi (MdiLayout.Cascade);
  685. Assert.IsFalse (c.IsHandleCreated, "F5");
  686. #if NET_2_0 && !__MonoCS__
  687. c.PerformAutoScale ();
  688. Assert.IsFalse (c.IsHandleCreated, "F6");
  689. #endif
  690. c.PerformLayout ();
  691. Assert.IsFalse (c.IsHandleCreated, "F7");
  692. c.AddOwnedForm (new Form ());
  693. c.RemoveOwnedForm (c.OwnedForms [c.OwnedForms.Length - 1]);
  694. Assert.IsFalse (c.IsHandleCreated, "F8");
  695. c.ScrollControlIntoView (null);
  696. Assert.IsFalse (c.IsHandleCreated, "F9");
  697. c.SetAutoScrollMargin (7, 13);
  698. Assert.IsFalse (c.IsHandleCreated, "F10");
  699. c.SetDesktopBounds (-1, -1, 144, 169);
  700. Assert.IsFalse (c.IsHandleCreated, "F11");
  701. c.SetDesktopLocation (7, 13);
  702. Assert.IsFalse (c.IsHandleCreated, "F12");
  703. #if NET_2_0
  704. c = new Form ();
  705. c.Show (null);
  706. Assert.IsTrue (c.IsHandleCreated, "F13");
  707. c.Close ();
  708. c = new Form ();
  709. #endif
  710. //c.ShowDialog ()
  711. c.ToString ();
  712. Assert.IsFalse (c.IsHandleCreated, "F14");
  713. c.Validate ();
  714. Assert.IsFalse (c.IsHandleCreated, "F15");
  715. #if NET_2_0 && !__MonoCS__
  716. c.ValidateChildren ();
  717. Assert.IsFalse (c.IsHandleCreated, "F16");
  718. #endif
  719. }
  720. [Test]
  721. public void Show ()
  722. {
  723. Form c = new Form ();
  724. Assert.IsFalse (c.IsHandleCreated, "A1");
  725. c.HandleCreated += new EventHandler (HandleCreated_WriteStackTrace);
  726. c.Show ();
  727. Assert.IsTrue (c.IsHandleCreated, "A2");
  728. c.Dispose ();
  729. }
  730. void HandleCreated_WriteStackTrace (object sender, EventArgs e)
  731. {
  732. //Console.WriteLine (Environment.StackTrace);
  733. }
  734. public delegate void InvokeDelegate ();
  735. public void InvokeMethod () { invokeform.Text = "methodinvoked"; }
  736. [Test]
  737. [ExpectedException (typeof (InvalidOperationException))]
  738. public void InvokeIOE ()
  739. {
  740. Form c = new Form ();
  741. c.Invoke (new InvokeDelegate (InvokeMethod));
  742. }
  743. private class ProtectedPropertyForm : Form
  744. {
  745. #if NET_2_0
  746. public SizeF PublicAutoScaleFactor { get { return base.AutoScaleFactor; } }
  747. #endif
  748. #if !__MonoCS__ && NET_2_0
  749. public bool PublicCanRaiseEvents { get { return base.CanRaiseEvents; } }
  750. #endif
  751. public CreateParams PublicCreateParams { get { return base.CreateParams; } }
  752. #if NET_2_0
  753. public Cursor PublicDefaultCursor { get { return base.DefaultCursor; } }
  754. #endif
  755. public ImeMode PublicDefaultImeMode { get { return base.DefaultImeMode; } }
  756. #if NET_2_0
  757. public Padding PublicDefaultMargin { get { return base.DefaultMargin; } }
  758. public Size PublicDefaultMaximumSize { get { return base.DefaultMaximumSize; } }
  759. public Size PublicDefaultMinimumSize { get { return base.DefaultMinimumSize; } }
  760. public Padding PublicDefaultPadding { get { return base.DefaultPadding; } }
  761. public Size PublicDefaultSize { get { return base.DefaultSize; } }
  762. #endif
  763. public bool PublicDesignMode { get {return base.DesignMode; } }
  764. #if NET_2_0
  765. public bool PublicDoubleBuffered { get { return base.DoubleBuffered; } set { base.DoubleBuffered = value; } }
  766. #endif
  767. public EventHandlerList PublicEvents { get {return base.Events; } }
  768. public int PublicFontHeight { get { return base.FontHeight; } set { base.FontHeight = value; } }
  769. public bool PublicHScroll { get {return base.HScroll; } set { base.HScroll = value;} }
  770. public Rectangle PublicMaximizedBounds { get {return base.MaximizedBounds; } set { base.MaximizedBounds = value; }}
  771. public bool PublicRenderRightToLeft { get { return base.RenderRightToLeft; } }
  772. public bool PublicResizeRedraw { get { return base.ResizeRedraw; } set { base.ResizeRedraw = value; } }
  773. #if !__MonoCS__ && NET_2_0
  774. public bool PublicScaleChildren { get { return base.ScaleChildren; } }
  775. #endif
  776. public bool PublicShowFocusCues { get { return base.ShowFocusCues; } }
  777. public bool PublicShowKeyboardCues { get { return base.ShowKeyboardCues; } }
  778. #if NET_2_0
  779. public bool PublicShowWithoutActivation { get { return base.ShowWithoutActivation; } }
  780. #endif
  781. public bool PublicVScroll { get { return base.VScroll; } set { base.VScroll = value; } }
  782. }
  783. [Test]
  784. public void TestProtectedMethods ()
  785. {
  786. // Protected Methods that force Handle creation:
  787. // - CreateAccessibilityInstance ()
  788. // - CreateHandle ()
  789. // - IsInputChar ()
  790. // - Select ()
  791. // - SetVisibleCore ()
  792. // - CenterToParent ()
  793. // - CenterToScreen ()
  794. ProtectedMethodsForm c = new ProtectedMethodsForm ();
  795. c.PublicAccessibilityNotifyClients (AccessibleEvents.Focus, 0);
  796. #if NET_2_0
  797. Assert.IsFalse (c.IsHandleCreated, "A1");
  798. #else
  799. Assert.IsTrue (c.IsHandleCreated, "A1");
  800. #endif
  801. c.PublicCreateAccessibilityInstance ();
  802. Assert.IsTrue (c.IsHandleCreated, "A2");
  803. c = new ProtectedMethodsForm ();
  804. c.PublicCreateControlsInstance ();
  805. Assert.IsFalse (c.IsHandleCreated, "A3");
  806. c.PublicCreateHandle ();
  807. Assert.IsTrue (c.IsHandleCreated, "A4");
  808. c = new ProtectedMethodsForm ();
  809. c.PublicDestroyHandle ();
  810. Assert.IsFalse (c.IsHandleCreated, "A5");
  811. c = new ProtectedMethodsForm ();
  812. #if NET_2_0
  813. c.PublicGetAccessibilityObjectById (0);
  814. Assert.IsFalse (c.IsHandleCreated, "A6");
  815. #endif
  816. #if !__MonoCS__ && NET_2_0
  817. c.PublicGetAutoSizeMode ();
  818. Assert.IsFalse (c.IsHandleCreated, "A7");
  819. c.PublicGetScaledBounds (new Rectangle (0, 0, 100, 100), new SizeF (1.5f, 1.5f), BoundsSpecified.All);
  820. Assert.IsFalse (c.IsHandleCreated, "A8");
  821. #endif
  822. c.PublicGetStyle (ControlStyles.FixedHeight);
  823. Assert.IsFalse (c.IsHandleCreated, "A9");
  824. c.PublicGetTopLevel ();
  825. Assert.IsFalse (c.IsHandleCreated, "A10");
  826. c.PublicInitLayout ();
  827. Assert.IsFalse (c.IsHandleCreated, "A11");
  828. c.PublicInvokeGotFocus (c, EventArgs.Empty);
  829. Assert.IsFalse (c.IsHandleCreated, "A12");
  830. c.PublicInvokeLostFocus (c, EventArgs.Empty);
  831. Assert.IsFalse (c.IsHandleCreated, "A13");
  832. c.PublicInvokeOnClick (c, EventArgs.Empty);
  833. Assert.IsFalse (c.IsHandleCreated, "A14");
  834. c.PublicInvokePaint (c, new PaintEventArgs (Graphics.FromImage (new Bitmap (1, 1)), Rectangle.Empty));
  835. Assert.IsFalse (c.IsHandleCreated, "A15");
  836. c.PublicInvokePaintBackground (c, new PaintEventArgs (Graphics.FromImage (new Bitmap (1, 1)), Rectangle.Empty));
  837. Assert.IsFalse (c.IsHandleCreated, "A16");
  838. c.PublicIsInputChar ('c');
  839. Assert.IsTrue (c.IsHandleCreated, "A17");
  840. c = new ProtectedMethodsForm ();
  841. c.PublicIsInputKey (Keys.B);
  842. Assert.IsFalse (c.IsHandleCreated, "A18");
  843. c.PublicNotifyInvalidate (Rectangle.Empty);
  844. Assert.IsFalse (c.IsHandleCreated, "A19");
  845. Form f = new Form ();
  846. c.TopLevel = false;
  847. f.Controls.Add (c);
  848. c.PublicOnVisibleChanged (EventArgs.Empty);
  849. Assert.IsFalse (c.IsHandleCreated, "A20");
  850. c = new ProtectedMethodsForm ();
  851. c.PublicRaiseDragEvent (null, null);
  852. Assert.IsFalse (c.IsHandleCreated, "A21");
  853. c.PublicRaiseKeyEvent (null, null);
  854. Assert.IsFalse (c.IsHandleCreated, "A22");
  855. c.PublicRaiseMouseEvent (null, null);
  856. Assert.IsFalse (c.IsHandleCreated, "A23");
  857. c.PublicRaisePaintEvent (null, null);
  858. Assert.IsFalse (c.IsHandleCreated, "A24");
  859. c.PublicRecreateHandle ();
  860. Assert.IsFalse (c.IsHandleCreated, "A25");
  861. c.PublicResetMouseEventArgs ();
  862. Assert.IsFalse (c.IsHandleCreated, "A26");
  863. c.PublicRtlTranslateAlignment (ContentAlignment.BottomLeft);
  864. Assert.IsFalse (c.IsHandleCreated, "A27");
  865. c.PublicRtlTranslateContent (ContentAlignment.BottomLeft);
  866. Assert.IsFalse (c.IsHandleCreated, "A28");
  867. c.PublicRtlTranslateHorizontal (HorizontalAlignment.Left);
  868. Assert.IsFalse (c.IsHandleCreated, "A29");
  869. c.PublicRtlTranslateLeftRight (LeftRightAlignment.Left);
  870. Assert.IsFalse (c.IsHandleCreated, "A30");
  871. #if !__MonoCS__ && NET_2_0
  872. c.PublicScaleControl (new SizeF (1.5f, 1.5f), BoundsSpecified.All);
  873. Assert.IsFalse (c.IsHandleCreated, "A31");
  874. #endif
  875. c.PublicScaleCore (1.5f, 1.5f);
  876. Assert.IsFalse (c.IsHandleCreated, "A32");
  877. c.PublicSelect ();
  878. Assert.IsTrue (c.IsHandleCreated, "A33");
  879. c = new ProtectedMethodsForm ();
  880. #if !__MonoCS__ && NET_2_0
  881. c.PublicSetAutoSizeMode (AutoSizeMode.GrowAndShrink);
  882. Assert.IsFalse (c.IsHandleCreated, "A34");
  883. #endif
  884. c.PublicSetBoundsCore (0, 0, 100, 100, BoundsSpecified.All);
  885. Assert.IsFalse (c.IsHandleCreated, "A35");
  886. c.PublicSetClientSizeCore (122, 122);
  887. Assert.IsFalse (c.IsHandleCreated, "A36");
  888. c.PublicSetStyle (ControlStyles.FixedHeight, true);
  889. Assert.IsFalse (c.IsHandleCreated, "A37");
  890. c.PublicSetTopLevel (true);
  891. Assert.IsFalse (c.IsHandleCreated, "A38");
  892. c = new ProtectedMethodsForm ();
  893. c.PublicSetVisibleCore (true);
  894. Assert.IsTrue (c.IsHandleCreated, "A39");
  895. c = new ProtectedMethodsForm ();
  896. #if NET_2_0
  897. c.PublicSizeFromClientSize (new Size (160, 160));
  898. Assert.IsFalse (c.IsHandleCreated, "A40");
  899. #endif
  900. c.PublicUpdateBounds ();
  901. Assert.IsFalse (c.IsHandleCreated, "A41");
  902. c.PublicUpdateStyles ();
  903. Assert.IsFalse (c.IsHandleCreated, "A42");
  904. c.PublicUpdateZOrder ();
  905. Assert.IsFalse (c.IsHandleCreated, "A43");
  906. // Form
  907. c = new ProtectedMethodsForm ();
  908. c.IsMdiContainer = true;
  909. new Form ().MdiParent = c;
  910. new Form ().MdiParent = c;
  911. c.PublicActivateMdiChild (c.MdiChildren [0]);
  912. c.PublicActivateMdiChild (c.MdiChildren [1]);
  913. Assert.IsFalse (c.IsHandleCreated, "F1");
  914. c.Dispose ();
  915. c = new ProtectedMethodsForm();
  916. c.PublicAdjustFormScrollbars (true);
  917. Assert.IsFalse (c.IsHandleCreated, "F2");
  918. c.PublicCenterToParent ();
  919. Assert.IsTrue (c.IsHandleCreated, "F3");
  920. c = new ProtectedMethodsForm ();
  921. c.PublicCenterToScreen ();
  922. Assert.IsTrue (c.IsHandleCreated, "F4");
  923. c = new ProtectedMethodsForm ();
  924. c.PublicGetScrollState (1);
  925. Assert.IsFalse (c.IsHandleCreated, "F5");
  926. c.PublicGetService (typeof (int));
  927. Assert.IsFalse (c.IsHandleCreated, "F6");
  928. Message m = new Message ();
  929. c.PublicProcessCmdKey (ref m, Keys.C);
  930. Assert.IsFalse (c.IsHandleCreated, "F7");
  931. c.PublicProcessDialogChar ('p');
  932. Assert.IsFalse (c.IsHandleCreated, "F8");
  933. c.PublicProcessDialogKey (Keys.D);
  934. Assert.IsFalse (c.IsHandleCreated, "F9");
  935. c.PublicProcessKeyEventArgs (ref m);
  936. Assert.IsFalse (c.IsHandleCreated, "F10");
  937. c.PublicProcessKeyMessage (ref m);
  938. Assert.IsFalse (c.IsHandleCreated, "F11");
  939. c.PublicProcessKeyPreview (ref m);
  940. Assert.IsFalse (c.IsHandleCreated, "F12");
  941. c.PublicProcessMnemonic ('Z');
  942. Assert.IsFalse (c.IsHandleCreated, "F13");
  943. c.PublicProcessTabKey (true);
  944. Assert.IsFalse (c.IsHandleCreated, "F14");
  945. #if NET_2_0 && !__MonoCS__
  946. c.Controls.Add (new Control ());
  947. c.PublicScrollToControl (c.Controls [0]);
  948. Assert.IsFalse (c.IsHandleCreated, "F15");
  949. c.Dispose ();
  950. c = new ProtectedMethodsForm ();
  951. #endif
  952. c.PublicSelect (true, true);
  953. Assert.IsTrue (c.IsHandleCreated, "F16");
  954. c = new ProtectedMethodsForm();
  955. c.PublicSetDisplayRectLocation (13, 17);
  956. Assert.IsFalse (c.IsHandleCreated, "F17");
  957. c.PublicSetScrollState (5, false);
  958. Assert.IsFalse (c.IsHandleCreated, "F18");
  959. c.PublicUpdateDefaultButton (3, false);
  960. Assert.IsFalse (c.IsHandleCreated, "F19");
  961. }
  962. private class ProtectedMethodsForm : Form
  963. {
  964. public void PublicAccessibilityNotifyClients (AccessibleEvents accEvent, int childID) { base.AccessibilityNotifyClients (accEvent, childID); }
  965. public void PublicActivateMdiChild (Form form) { base.ActivateMdiChild (form); }
  966. public void PublicAdjustFormScrollbars (bool displayScrollbars) {base.AdjustFormScrollbars (displayScrollbars); }
  967. public void PublicCenterToParent () { base.CenterToParent (); }
  968. public void PublicCenterToScreen () { base.CenterToScreen (); }
  969. public void PublicCreateAccessibilityInstance () { base.CreateAccessibilityInstance (); }
  970. public void PublicCreateControlsInstance () { base.CreateControlsInstance (); }
  971. public void PublicCreateHandle () { base.CreateHandle (); }
  972. public void PublicDestroyHandle () { base.DestroyHandle (); }
  973. #if NET_2_0
  974. public AccessibleObject PublicGetAccessibilityObjectById (int objectId) { return base.GetAccessibilityObjectById (objectId); }
  975. #endif
  976. #if !__MonoCS__ && NET_2_0
  977. public AutoSizeMode PublicGetAutoSizeMode () { return base.GetAutoSizeMode (); }
  978. public Rectangle PublicGetScaledBounds (Rectangle bounds, SizeF factor, BoundsSpecified specified) { return base.GetScaledBounds (bounds, factor, specified); }
  979. #endif
  980. public bool PublicGetScrollState (int bit) { return base.GetScrollState (bit); }
  981. public object PublicGetService (Type service) { return base.GetService (service); }
  982. public bool PublicGetStyle (ControlStyles flag) { return base.GetStyle (flag); }
  983. public bool PublicGetTopLevel () { return base.GetTopLevel (); }
  984. public void PublicInitLayout () { base.InitLayout (); }
  985. public void PublicInvokeGotFocus (Control toInvoke, EventArgs e) { base.InvokeGotFocus (toInvoke, e); }
  986. public void PublicInvokeLostFocus (Control toInvoke, EventArgs e) { base.InvokeLostFocus (toInvoke, e); }
  987. public void PublicInvokeOnClick (Control toInvoke, EventArgs e) { base.InvokeOnClick (toInvoke, e); }
  988. public void PublicInvokePaint (Control c, PaintEventArgs e) { base.InvokePaint (c, e); }
  989. public void PublicInvokePaintBackground (Control c, PaintEventArgs e) { base.InvokePaintBackground (c, e); }
  990. public bool PublicIsInputChar (char charCode) { return base.IsInputChar (charCode); }
  991. public bool PublicIsInputKey (Keys keyData) { return base.IsInputKey (keyData); }
  992. public void PublicNotifyInvalidate (Rectangle invalidatedArea) { base.NotifyInvalidate (invalidatedArea); }
  993. public void PublicOnVisibleChanged (EventArgs e) { base.OnVisibleChanged (e); }
  994. public void PublicProcessCmdKey (ref Message msg, Keys keyData) { base.ProcessCmdKey (ref msg, keyData); }
  995. public void PublicProcessDialogChar (char charCode) { base.ProcessDialogChar (charCode); }
  996. public void PublicProcessDialogKey (Keys keyData) { base.ProcessDialogKey (keyData); }
  997. public void PublicProcessKeyEventArgs (ref Message m) { base.ProcessKeyEventArgs (ref m); }
  998. public void PublicProcessKeyMessage (ref Message m) { base.ProcessKeyMessage (ref m); }
  999. public void PublicProcessKeyPreview (ref Message m) { base.ProcessKeyPreview (ref m); }
  1000. public void PublicProcessMnemonic (char charCode) { base.ProcessMnemonic (charCode); }
  1001. public void PublicProcessTabKey (bool forward) { base.ProcessTabKey (forward); }
  1002. public void PublicRaiseDragEvent (Object key, DragEventArgs e) { base.RaiseDragEvent (key, e); }
  1003. public void PublicRaiseKeyEvent (Object key, KeyEventArgs e) { base.RaiseKeyEvent (key, e); }
  1004. public void PublicRaiseMouseEvent (Object key, MouseEventArgs e) { base.RaiseMouseEvent (key, e); }
  1005. public void PublicRaisePaintEvent (Object key, PaintEventArgs e) { base.RaisePaintEvent (key, e); }
  1006. public void PublicRecreateHandle () { base.RecreateHandle (); }
  1007. public void PublicResetMouseEventArgs () { base.ResetMouseEventArgs (); }
  1008. public ContentAlignment PublicRtlTranslateAlignment (ContentAlignment align) { return base.RtlTranslateAlignment (align); }
  1009. public ContentAlignment PublicRtlTranslateContent (ContentAlignment align) { return base.RtlTranslateContent (align); }
  1010. public HorizontalAlignment PublicRtlTranslateHorizontal (HorizontalAlignment align) { return base.RtlTranslateHorizontal (align); }
  1011. public LeftRightAlignment PublicRtlTranslateLeftRight (LeftRightAlignment align) { return base.RtlTranslateLeftRight (align); }
  1012. #if !__MonoCS__ && NET_2_0
  1013. public void PublicScaleControl (SizeF factor, BoundsSpecified specified) { base.ScaleControl (factor, specified); }
  1014. #endif
  1015. public void PublicScaleCore (float dx, float dy) { base.ScaleCore (dx, dy); }
  1016. #if NET_2_0 && !__MonoCS__
  1017. public void PublicScrollToControl (Control activeControl) { base.ScrollToControl (activeControl); }
  1018. #endif
  1019. public void PublicSelect () { base.Select (); }
  1020. public void PublicSelect (bool directed, bool forward) { base.Select (directed, forward); }
  1021. #if !__MonoCS__ && NET_2_0
  1022. public void PublicSetAutoSizeMode (AutoSizeMode mode) { base.SetAutoSizeMode (mode); }
  1023. #endif
  1024. public void PublicSetBoundsCore (int x, int y, int width, int height, BoundsSpecified specified) { base.SetBoundsCore (x, y, width, height, specified); }
  1025. public void PublicSetClientSizeCore (int x, int y) { base.SetClientSizeCore (x, y); }
  1026. public void PublicSetDisplayRectLocation (int x, int y) { base.SetDisplayRectLocation (x, y); }
  1027. public void PublicSetScrollState (int bit, bool value) { base.SetScrollState (bit, value); }
  1028. public void PublicSetStyle (ControlStyles flag, bool value) { base.SetStyle (flag, value); }
  1029. public void PublicSetTopLevel (bool value) { base.SetTopLevel (value); }
  1030. public void PublicSetVisibleCore (bool value) { base.SetVisibleCore (value); }
  1031. #if NET_2_0
  1032. public Size PublicSizeFromClientSize (Size clientSize) { return base.SizeFromClientSize (clientSize); }
  1033. #endif
  1034. public void PublicUpdateBounds () { base.UpdateBounds (); }
  1035. public void PublicUpdateDefaultButton (int bit, bool value) { base.UpdateDefaultButton (); }
  1036. public void PublicUpdateStyles () { base.UpdateStyles (); }
  1037. public void PublicUpdateZOrder () { base.UpdateZOrder (); }
  1038. }
  1039. }
  1040. }