FormHandleTest.cs 39 KB

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