trakker/Forms/TextAreaForm.cs

76 lines
2.8 KiB
C#

using System.ComponentModel;
namespace trakker.Forms
{
public partial class TextAreaForm : Form
{
public TextAreaForm() : this("Untitled") { }
public TextAreaForm(string formTitle)
{
InitializeComponent();
// Set DialogResult on buttons
Okay_Button.DialogResult = DialogResult.OK;
Cancel_Button.DialogResult = DialogResult.Cancel;
// Optional: Set default Accept/Cancel buttons
//this.AcceptButton = Okay_Button;
this.CancelButton = CancelButton;
this.StartPosition = FormStartPosition.CenterParent;
this.Text = formTitle;
Content_RichTextBox.Text = string.Empty;
Content_RichTextBox.BackColor = Color.White;
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public string? BasicText { get { return Content_RichTextBox.Text; } set { Content_RichTextBox.Text = value; } }
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public string? RichText { get { return Content_RichTextBox.Rtf; } set { Content_RichTextBox.Rtf = value; } }
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public bool WordWrap { get { return Content_RichTextBox.WordWrap; } set { Content_RichTextBox.WordWrap = value; } }
public void ReadOnly()
{
Content_RichTextBox.ReadOnly = true;
Okay_Button.Visible = false;
Cancel_Button.Text = "Okay";
Text = string.Format("{0} [readonly]", Text);
}
private void Content_RichTextBox_LinkClicked(object sender, LinkClickedEventArgs e)
{
try
{
// Open the URL in the default browser
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
{
FileName = e.LinkText,
UseShellExecute = true
});
}
catch (Exception ex)
{
MessageBox.Show(String.Format($"Failed to open link: {ex.Message}"), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void copyToClipboardToolStripMenuItem_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(BasicText)) { return; }
Clipboard.SetText(BasicText ?? "");
MessageBox.Show("Content successfully copied to clipboard", "Clipboard", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void enableDisableWordWrapToolStripMenuItem_Click(object sender, EventArgs e)
{
Content_RichTextBox.WordWrap = !Content_RichTextBox.WordWrap;
}
}
}