2013-05-17 155 views
0

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

我收到这条线一argumentNullException:

Clipboard.SetText(nextLine(clipboardText));

我有nextLine()返回一个空字符串,如果它不能从剪贴板获取文本,所以它不应该返回null。

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

当我按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 

      } 
    } 
+2

不清楚你在哪里得到异常,但你不应该试图捕捉它 - 你应该通过首先检查无效性并适当地处理它来避免它。请注意,您的方法名称对于C#而言不是常规的,顺便说一句。 –

+0

请勿将它作为注释添加 - 将其编辑到您的问题中。 –

回答

2

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