FormHandleTest.cs 40 KB

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