0

我正在创建剪贴板编辑程序,但在使用“复制”按钮时遇到错误。如果从其复制到剪贴板内容的文本框为空,那么我会收到“未处理 ArgumentNullException”。我知道这是因为它从中复制文本的 TextBox 是空的。我想编写一个方法,如果 TextBox 为空,则该按钮被禁用。这是此按钮的代码:

 // Copies the text in the text box to the clipboard.
    private void copyButton_Click(object sender, EventArgs e)
    {
        Clipboard.SetText(textClipboard.Text);
    }

任何和所有的帮助表示赞赏。如果我遗漏了更多细节,请告诉我,以便我添加它们。

4

3 回答 3

3

您必须最初将按钮设置为禁用。

然后您可以使用该代码来检测文本框中的更改:

    private void textClipboard_TextChanged(object sender, EventArgs e)
    {
        copyButton.Enabled = textClipboard.Text.Length > 0;
    }
于 2013-10-08T00:19:45.263 回答
2

您应该检查空值:

 // Copies the text in the text box to the clipboard.
    private void private void textClipboard_LostFocus(object sender, System.EventArgs e)
    {
        if(!string.IsNullOrEmpty(textClipboard.Text)
        {
            Clipboard.SetText(textClipboard.Text);

        }
        else
        {
          copyButton.Enabled = false; //Set to disabled
        }
    }
于 2013-10-08T00:20:20.983 回答
1

您最初可以将 button.enabled 设置为 false,然后将 KeyUp 事件添加到您的文本框:

    private void textClipboard_KeyUp(object sender, KeyEventArgs e)
    {
        copyButton.Enabled = !string.IsNullOrEmpty(textBox1.Text);
    }
于 2013-10-08T00:52:53.850 回答