如何在C#中一次从剪贴板粘贴一行?

时间:2013-05-17 17:24:47

标签: c# key hook paste intercept

如何在C#中一次从剪贴板粘贴一行?

我在这一行得到一个argumentNullException:

Clipboard.SetText(nextLine(clipboardText));

我有nextLine()返回一个空字符串,如果它无法从剪贴板中获取文本,那么它永远不会返回null。

当我点击CTRL + C时,它将获取所有剪贴板文本并将其存储在clipboardText中。

当我点击CTRL + V时,它应该从系统剪贴板中的clipboardText粘贴顶行,然后粘贴它。

            if (Keys.C == (Keys)vkCode && Keys.Control == Control.ModifierKeys)
            {
                Console.WriteLine("CTRL+C");
                clipboardText = getTheClipboardText();
            }
            else if (Keys.V == (Keys)vkCode && Keys.Control == Control.ModifierKeys)
            {
                    Clipboard.SetText(nextLine(clipboardText)); //nextline returns a string of one line

                    clipboardText = removeFirstLine(clipboardText); //remove first line returns a string missing the first line

            }
     }

1 个答案:

答案 0 :(得分:3)

听起来nextLine在某些情况下会返回null,因此您需要考虑如何处理它。例如:

string line = nextLine(clipboardText);
if (line == null)
{
    // Nothing more to do.
    return ...; // TODO: Work out what value to return
}
Clipboard.SetText(line);
clipboardText = removeFirstLine(clipboardText);

或者,如果您的nextLine方法永远不会返回null,那么这表示它有错误。