хочу добавить всплывающее меню в графическом интерфейсе csharp 2008 - PullRequest
0 голосов
/ 02 января 2011

Как я могу иметь всплывающее меню в C # 2008, я хочу добавить всплывающее меню, которое похоже на всплывающее меню, которое включает в себя функцию вырезать вставить копию в Windows XP

Ответы [ 2 ]

1 голос
/ 02 января 2011

Если вы имеете в виду ContextMenu или MainMenu, щелкните правой кнопкой мыши панель инструментов в Visual Studio -> Выбрать элементы -> найдите эти два в System.Windows.Forms.dll, затем установите флажки и нажмите ОК , Теперь они должны быть в наборе инструментов, чтобы вы могли добавлять их, как и другие элементы управления.

0 голосов
/ 02 января 2011

Вы имеете в виду это для richTextBox или что-то в этом роде? Добавьте ContextMenuStrip к вашей Form1. Я знаю, это выглядит немного странно, где это появляется, терпите меня. Поместите в Cut, Copy, Paste, Delete <<, что является обычным порядком. Затем сделайте что-нибудь в этом духе (не проверено) </p>

private void cutToolStripMenuItem_Click(object sender, EventArgs e)
        {
                try
                {
                    Clipboard.SetText(richTextBox1.SelectedText);
                    richTextBox1.SelectedText = "";
                }
                catch (System.ArgumentNullException)
                {
                    // To consider. If nothing at all cut, clipboard emptied anyway
                    Clipboard.Clear();
                } 

        }

        private void copyToolStripMenuItem_Click(object sender, EventArgs e)
        {
                try
                {
                    Clipboard.SetText(richTextBox1.SelectedText);
                }
                catch (System.ArgumentNullException)
                {
                    // To consider. If nothing at all copied, clipboard emptied anyway
                    Clipboard.Clear();
                }

        }

        private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.SelectedText = Clipboard.GetText();
        }

        private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.SelectedText = "";
        }

Затем измените свойство ContextMenuStrip richTextBox1 на ContextMenuStrip1, и все должно быть хорошо.

Удачи!

РЕДАКТИРОВАТЬ: лучше использовать оператор if, а не Try-Catch. Посмотрим, сможете ли вы сделать это самостоятельно :) Спросите, нужна ли вам помощь. Я смягчился. Попробуйте следующий код:

private void cutToolStripMenuItem_Click(object sender, EventArgs e)
{
    // Requires "" rather than null
    if (richTextBox1.SelectedText != "")
    {
        Clipboard.SetText(richTextBox1.SelectedText);
        richTextBox1.SelectedText = "";
    }
    else
    {
        Clipboard.Clear();
    }
}

private void copyToolStripMenuItem_Click(object sender, EventArgs e)
{
    // Requires "" rather than null
    if (richTextBox1.SelectedText != "")
    {
        Clipboard.SetText(richTextBox1.SelectedText);         
    }
    else
    {
        Clipboard.Clear();
    }
}

private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
{
    richTextBox1.SelectedText = Clipboard.GetText();
}

private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
{
    richTextBox1.SelectedText = "";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...