2013-05-17 153 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,那麼這表明它有一個錯誤。