如何在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
}
}
答案 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,那么这表示它有错误。