Как вывести строку, которую можно скопировать в буфер обмена? - PullRequest
0 голосов
/ 31 января 2019

Я использую MessageBox для вывода строки, из которой я хочу иметь возможность скопировать текст и вставить в другое место.MessageBox не позволяет вам копировать отображаемый текст, поэтому мне нужен другой вариант, который бы работал.

Я использую:

MessageBox.Show("Test!");

1 Ответ

0 голосов
/ 31 января 2019

Если вы просто хотите, чтобы пользователь выбрал и скопировал текст из TextBox, вы можете создать свою собственную форму с TextBox внутри и затем показать ее с .Show() или .ShowDialog().
Последний будетпредставить форму Modal в виде диалога, созданного MessageBox.Show().

. Вы также можете создать ее на лету ;нажав на кнопку, например:

private void button1_Click(object sender, EventArgs e)
{
    ShowMyDialog("Dialog Title", "Test!");
}

private void ShowMyDialog(string title, string text)
{
    Form form = new Form()
    {
        Text = title,
        Size = new Size(250, 80)
    };

    form.Controls.Add(new TextBox()
    {
        Font = this.Font,
        Text = text,
        Size = new Size(150, this.Font.Height),
        Location = new Point(50, 10)
    });

    form.ShowDialog();
    form.Controls.OfType<TextBox>().First().Dispose();
    form.Dispose();
}

Если вместо этого вы хотите поместить некоторый текст в буфер обмена, вы можете использовать ClipBoard.SetText :

Очищает буфер обмена, а затем добавляет текстовые данные в формате Text или UnicodeText, в зависимости от операционной системы.

Clipboard.SetText("My String");

Затем можно вставить строку (где это возможно) с помощью Ctrl + V или Shift + Вставьте или верните его в коде с помощью Clipboard.GetText ;

 string fromClipBoard = Clipboard.GetText();

Вы также можете указать текстовый формат, используя перечислитель TextDataFormat :

Clipboard.SetText([HtmlContent], TextDataFormat.Html);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...