1

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

我在这一行得到一个 argumentNullException:

Clipboard.SetText(nextLine(clipboardText));

如果 nextLine() 无法从剪贴板获取文本,我让它返回一个空字符串,因此它永远不应该返回 null。

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

当我按 CTRL + V 时,它应该将剪贴板文本的顶行粘贴到系统剪贴板中,然后粘贴。

            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

            }
     }
4

1 回答 1

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,那么这表明它有一个错误。

于 2013-05-17T17:32:55.577 回答