0

Editダイナミック→を設定するためのこの正しいコードCopy mnuStripItemですか?

このコードは、ユーザーが強調表示したものをコピーするために使用され、正しく出力されます。

private void copyToolStripMenuItem_Click(object sender, EventArgs e)
    {
        Form f = Form.ActiveForm;

        // Find the control that has focus
        Control focusedControl = f.ActiveControl;

        // See if focusedControl is of a type that can select text/data
        if (focusedControl is TextBox)
        {
            TextBox tb = focusedControl as TextBox;
            Clipboard.SetDataObject(tb.SelectedText);
        }
        else if (focusedControl is DataGridView)
        {
            DataGridView dgv = focusedControl  as DataGridView;
            Clipboard.SetDataObject(dgv.GetClipboardContent());
        }
        //else if (...more?...)
        //{
        //}

    }
4

1 に答える 1

0

絶対に正しいですが、通常、多くのcheckステートメントを処理する必要がある場合は、switchステートメントを使用することを好みます。読みやすく、この場合はパフォーマンスも向上すると思います(「is」および「as」ステートメントを使用する必要はありません)。

Control focusedControl = f.ActiveControl;

switch (focusedControl.GetType())
{
    case typeof(TextBox):
        TextBox tb = (TextBox)focusedControl;
        Clipboard.SetDataObject(tb.SelectedText);
        break;

    // ...

    default:
        break;
}
于 2013-01-20T00:36:01.827 に答える