Strg+C in MDI-Childs für Richbox und Textbox

26/06/2008 - 10:17 von Alberto Luca | Report spam
Hallo NewsGroup,

ich habe mir von VS2005 eine MDI-Anwendung generieren lassen.
Dabei wurde u.a. folgender Code bzgl. Strg+C generiert:
private void CopyToolStripMenuItem_Click(object sender, EventArgs e)
{
// TODO: Mithilfe von System.Windows.Forms.Clipboard den
ausgewà¤hlten Text bzw. die ausgewà¤hlten Bilder in die Zwischenablage
kopieren
// Determine the active child form.
Form activeChild = this.ActiveMdiChild;

// If there is an active child form, find the active control,
which
// in this example should be a RichTextBox.
if (activeChild != null)
{
try
{
RichTextBox theBox =
(RichTextBox)activeChild.ActiveControl;
if (theBox != null)
{
// Put the selected text on the Clipboard.
Clipboard.SetDataObject(theBox.SelectedText);
}
}
catch
{
MessageBox.Show("You need to select a RichTextBox.");
}
}
} // CopyToolStripMenuItem_Click

Wie kann ich den Code erweitern, dass diese Funktionalitàt auch für Textbox
funktioniert, ohne den kompletten try/catch-Block zu duplizieren?
evtl. Generics?

Besten Dank vorab!
Ciao, Alberto
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
26/06/2008 - 14:03 | Warnen spam
Hallo Alberto!

"Alberto Luca" schrieb:
ich habe mir von VS2005 eine MDI-Anwendung generieren lassen.
Dabei wurde u.a. folgender Code bzgl. Strg+C generiert:
private void CopyToolStripMenuItem_Click(object sender, EventArgs
e)
{
// TODO: Mithilfe von System.Windows.Forms.Clipboard den
ausgewà€hlten Text bzw. die ausgewà€hlten Bilder in die Zwischenablage
kopieren
// Determine the active child form.
Form activeChild = this.ActiveMdiChild;

// If there is an active child form, find the active control,
which
// in this example should be a RichTextBox.
if (activeChild != null)
{
try
{
RichTextBox theBox =
(RichTextBox)activeChild.ActiveControl;
if (theBox != null)
{
// Put the selected text on the Clipboard.
Clipboard.SetDataObject(theBox.SelectedText);
}
}
catch
{
MessageBox.Show("You need to select a RichTextBox.");
}
}
} // CopyToolStripMenuItem_Click

Wie kann ich den Code erweitern, dass diese Funktionalitàt auch für
Textbox funktioniert, ohne den kompletten try/catch-Block zu duplizieren?
evtl. Generics?



TextBox und RichTextBox haben eine gemeinsame Basisklasse, die eine
Eigenschaft zur Abfrage des ausgewàhlten Textes besitzt:

\\\
TextBoxBase stb = ac.ActiveControl as TextBoxBase;
if (stb != null)
Clipboard.SetDataObject(stb.SelectedText);
///

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen