| File: System\Windows\Forms\Design\LinkAreaEditor.LinkAreaUI.cs | Web Access |
| Project: src\winforms\src\System.Windows.Forms.Design\src\System.Windows.Forms.Design.csproj (System.Windows.Forms.Design) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.ComponentModel; using System.ComponentModel.Design; namespace System.Windows.Forms.Design; internal partial class LinkAreaEditor { /// <summary> /// Dialog box for the link area. /// </summary> internal class LinkAreaUI : Form { private Label _caption = new(); private TextBox _sampleEdit = new(); private Button _okButton = new(); private Button _cancelButton = new(); private TableLayoutPanel _okCancelTableLayoutPanel; private readonly IHelpService? _helpService; public LinkAreaUI(IHelpService? helpService) { _helpService = helpService; InitializeComponent(); } [AllowNull] public string SampleText { get => _sampleEdit.Text; set { _sampleEdit.Text = value; UpdateSelection(); } } public object? Value { get; private set; } public void End() => Value = null; [MemberNotNull(nameof(_caption))] [MemberNotNull(nameof(_sampleEdit))] [MemberNotNull(nameof(_okButton))] [MemberNotNull(nameof(_cancelButton))] [MemberNotNull(nameof(_okCancelTableLayoutPanel))] private void InitializeComponent() { ComponentResourceManager resources = new(typeof(LinkAreaEditor)); _caption = new Label(); _sampleEdit = new TextBox(); _okButton = new Button(); _cancelButton = new Button(); _okCancelTableLayoutPanel = new TableLayoutPanel(); _okCancelTableLayoutPanel.SuspendLayout(); SuspendLayout(); _okButton.Click += okButton_click; // caption resources.ApplyResources(_caption, "caption"); _caption.Margin = new Padding(3, 1, 3, 0); _caption.Name = "caption"; // sampleEdit resources.ApplyResources(_sampleEdit, "sampleEdit"); _sampleEdit.Margin = new Padding(3, 2, 3, 3); _sampleEdit.Name = "sampleEdit"; _sampleEdit.HideSelection = false; _sampleEdit.ScrollBars = ScrollBars.Vertical; // okButton resources.ApplyResources(_okButton, "okButton"); _okButton.DialogResult = DialogResult.OK; _okButton.Margin = new Padding(0, 0, 2, 0); _okButton.Name = "okButton"; // cancelButton resources.ApplyResources(_cancelButton, "cancelButton"); _cancelButton.DialogResult = DialogResult.Cancel; _cancelButton.Margin = new Padding(3, 0, 0, 0); _cancelButton.Name = "cancelButton"; // okCancelTableLayoutPanel resources.ApplyResources(_okCancelTableLayoutPanel, "okCancelTableLayoutPanel"); _okCancelTableLayoutPanel.ColumnCount = 2; _okCancelTableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); _okCancelTableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); _okCancelTableLayoutPanel.Controls.Add(_okButton, 0, 0); _okCancelTableLayoutPanel.Controls.Add(_cancelButton, 1, 0); _okCancelTableLayoutPanel.Margin = new Padding(3, 1, 3, 3); _okCancelTableLayoutPanel.Name = "okCancelTableLayoutPanel"; _okCancelTableLayoutPanel.RowCount = 1; _okCancelTableLayoutPanel.RowStyles.Add(new RowStyle()); _okCancelTableLayoutPanel.RowStyles.Add(new RowStyle()); // LinkAreaEditor resources.ApplyResources(this, "$this"); AutoScaleMode = AutoScaleMode.Font; CancelButton = _cancelButton; Controls.Add(_okCancelTableLayoutPanel); Controls.Add(_sampleEdit); Controls.Add(_caption); HelpButton = true; MaximizeBox = false; MinimizeBox = false; Name = "LinkAreaEditor"; ShowIcon = false; ShowInTaskbar = false; HelpButtonClicked += LinkAreaEditor_HelpButtonClicked; _okCancelTableLayoutPanel.ResumeLayout(false); _okCancelTableLayoutPanel.PerformLayout(); ResumeLayout(false); PerformLayout(); } private void okButton_click(object? sender, EventArgs e) { Value = new LinkArea(_sampleEdit.SelectionStart, _sampleEdit.SelectionLength); } private void LinkAreaEditor_HelpButtonClicked(object? sender, CancelEventArgs e) { e.Cancel = true; _helpService?.ShowHelpFromKeyword("net.ComponentModel.LinkAreaEditor"); } public void Start(object? value) { Value = value; UpdateSelection(); ActiveControl = _sampleEdit; } private void UpdateSelection() { if (Value is not LinkArea linkArea) { return; } try { _sampleEdit.SelectionStart = linkArea.Start; _sampleEdit.SelectionLength = linkArea.Length; } catch (Exception ex) when (!ex.IsCriticalException()) { } } } }