{"id":10063,"date":"2026-02-09T09:02:25","date_gmt":"2026-02-09T08:02:25","guid":{"rendered":"https:\/\/solidt.eu\/site\/?p=10063"},"modified":"2026-02-09T09:02:26","modified_gmt":"2026-02-09T08:02:26","slug":"xaf-windows-forms-control-focus-prevent-deleting-text-on-keydown","status":"publish","type":"post","link":"https:\/\/solidt.eu\/site\/xaf-windows-forms-control-focus-prevent-deleting-text-on-keydown\/","title":{"rendered":"XAF \/ Windows forms control focus (prevent deleting text on keydown)"},"content":{"rendered":"\n<div style=\"height: 250px; position:relative; margin-bottom: 50px;\" class=\"wp-block-simple-code-block-ace\"><pre class=\"wp-block-simple-code-block-ace\" style=\"position:absolute;top:0;right:0;bottom:0;left:0\" data-mode=\"csharp\" data-theme=\"monokai\" data-fontsize=\"14\" data-lines=\"Infinity\" data-showlines=\"true\" data-copy=\"false\">    public class TicketDetailviewController : ViewController\n    {\n        public TicketDetailviewController() : base()\n        {\n            TargetObjectType = typeof(ITicket);\n            TargetViewType = DevExpress.ExpressApp.ViewType.DetailView;\n            TargetViewNesting = Nesting.Root;\n        }\n\n        protected override void OnActivated()\n        {\n            base.OnActivated();\n            if (View.CurrentObject is ITicket ticket)\n            {\n                View.Caption = ticket.Subject;\n            }\n        }\n\n        protected override void OnViewControlsCreated()\n        {\n            base.OnViewControlsCreated();\n\n            if (View.ViewEditMode != ViewEditMode.Edit) return;\n\n            if (View.CurrentObject is ITicket ticket)\n            {\n                \/\/ Standaard word de eerste editor geselecteerd (met alle tekst die er in staat) waardoor je meteen begint met het verwijderen van het onderwerp als je gaat typen.\n                \/\/ Dus de focus verplaatsen naar de volgende editor (deze heeft meteen ook niet alles selected)\n                if (!string.IsNullOrWhiteSpace(ticket.Subject))\n                {\n                    ((Control)View.Control).HandleCreated += TicketDetailviewController_HandleCreated;\n                }\n            }\n        }\n\n        private void TicketDetailviewController_HandleCreated(object sender, EventArgs e)\n        {\n            if (View.Control is ContainerControl control)\n            {\n                control.HandleCreated -= TicketDetailviewController_HandleCreated;\n                control.BeginInvoke(new Action(() =>\n                {\n                    var activeControl = control.ActiveControl;\n                    var nextFocusableControl = GetNextFocusableControl(control);\n                    nextFocusableControl.Focus();\n                    if (nextFocusableControl is TextEdit editor)\n                    {\n                        editor.SelectionLength = 0;\n                    }\n                }));\n            }\n        }\n\n        private static Control GetNextFocusableControl(ContainerControl parentControl)\n        {\n            var start = parentControl.ActiveControl ?? parentControl;\n            var current = parentControl.GetNextControl(start, true);\n\n            while (current != null &amp;&amp; (!current.CanFocus || !current.Enabled || !current.Visible))\n            {\n                current = parentControl.GetNextControl(current, true);\n            }\n\n            return current;\n        }\n    }   <\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-10063","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/10063","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/comments?post=10063"}],"version-history":[{"count":1,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/10063\/revisions"}],"predecessor-version":[{"id":10064,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/10063\/revisions\/10064"}],"wp:attachment":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/media?parent=10063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/categories?post=10063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/tags?post=10063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}