Kaj Lao Ответов: 2

Получите слово после определенного слова в текстовом поле, а затем скопируйте его в буфер обмена


Эй, ребята!

Как я могу заставить свою программу найти слово после определенного слова в textbox1, а затем скопировать его в буфер обмена? Слово после определенного слова может содержать такие буквы, как "=#!?" кстати.

Что я уже пробовал:

Clipboard.SetText("");

Karthik_Mahalingam

покажите какой-нибудь пример,
каковы входные и ожидаемые выходные данные?

2 Ответов

Рейтинг:
1

alin1

Я написал этот код:

string FindWord(string specificWord)
{
    string[] words = textBox1.Text.Split(' '); // split the textBox1's Text into words

    for (var i = 0; i < words.Length; i++)
    {
        // Check if the specificWord is in the words array and
        // if the words array has room for at least another word
        if ((words[i] == specificWord) && (i < (words.Length - 1)))
        {
            return words[i + 1];
        }
    }

    return "";
}

void ProcessData()
{
    string result = FindWord("test");

    if (result != "")
    {
        try
        {
            Clipboard.SetText(result);
        }
        catch (Exception x)
        {
            MessageBox.Show("Error copying " + result + " to clipboard.\n\n" + x);
        }
    }
}

void Button1Click(object sender, EventArgs e)
{
    ProcessData();
}


Пока что это работает.


Kaj Lao

Привет, это не работает для меня? Когда я печатаю что-то в текстовом поле, это не копирование последнего слова в буфер обмена. Пожалуйста помочь. Что именно делает этот код?

Рейтинг:
1

alin1

Подождите секунду: вы не сказали, что хотите последнее слово, но слово сразу после конкретного слова. Мой код делает то, что вы просили в первую очередь.

например, если "тест" - это конкретное слово:
word1 word2 test word4 word5
Мой код скопирует word4 в буфер обмена.


Karthik_Mahalingam

не публикуйте несколько решений, вместо этого обновите предыдущее и удалите остальные.

Kaj Lao

@alin1 это отличное решение. Но "слово 4" не копируется в буфер обмена, когда я ввожу ctrl + v ?

Kaj Lao

Пожалуйста, объясните более подробно, как работает ваш код. Будет ли он копировать слово в буфер обмена, чтобы при вводе ctrl + v на клавиатуре оно копировало слово? Потому что это то, что я ищу

alin1

Мой код автоматически копирует это слово (если оно найдено). Когда вы нажмете Ctrl V, вы получите это слово. Вы пробовали адаптировать мой код к вашему проекту?

Kaj Lao

Да, но когда я нажимаю ctrl + v, он не вставляется? Например,когда я пишу: "word1 word2 test word3" в текстовое поле и нажимаю кнопку, она не вставляется, когда я нажимаю ctrl + v. Пожалуйста, попробуйте свой код самостоятельно

alin1

Я не знаю, как реализован ваш проект. Вы должны адаптировать этот код к своему решению, а не копировать и вставлять его. Я загрузил свое решение, и вы можете его протестировать: http://s000.tinyupload.com/?file_id=52017662079372572810

alin1

Когда вы нажимаете Ctrl V, вы вставляете из буфера обмена, а не копируете в буфер обмена.