private void delete_Click(object sender,EventArgs e) { convertedText.Text =“”; }
private void copy_Click(object sender, EventArgs e)
{
if (convertedText.Text != "")
Clipboard.SetText(convertedText.Text);
convertedText.Text = Clipboard.GetText();
else... what to put here?
}
该程序有两个按钮(复制和删除)和一个文本框。如果我单击“复制”按钮,它将从convertedText.Text复制文本,没有任何问题。 “删除”按钮也可以清除文本框。
但如果文本框中没有任何内容,“复制”按钮仍会尝试复制它,这会导致意外行为。
那么,我在“else”语句中添加了哪些代码......?我想要的是,如果文本框中没有任何内容,则不会使用剪贴板操作。怎么做?
提前致谢!
答案 0 :(得分:6)
不要添加else
子句,只需拥有if
,例如
private void copy_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(convertedText.Text))
{
Clipboard.SetText(convertedText.Text);
convertedText.Text = Clipboard.GetText();
}
}
此外,您是否有任何理由将文本框文本复制到剪贴板,然后使用剪贴板文本更新文本框文本?除非我遗漏了某些内容,否则这对文本框没有任何影响,因此代码可以更简单:
private void copy_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(convertedText.Text))
Clipboard.SetText(convertedText.Text);
}
答案 1 :(得分:2)
您的错误源于您在那里遗漏了一些括号:
if (convertedText.Text != "")
{
Clipboard.SetText(convertedText.Text);
convertedText.Text = Clipboard.GetText();
}
只有if语句后面的第一行被认为是执行内容的一部分,这取决于在省略括号时对if的求值。
答案 2 :(得分:0)
如果文本框没有值,您也可以返回...
private void copy_Click(object sender, EventArgs e)
{
if (convertedText.Text.Equals(""))
return;
Clipboard.SetText(convertedText.Text);
convertedText.Text = Clipboard.GetText();
}
答案 3 :(得分:0)
可能您缺少括号{
和}
if (convertedText.Text != ""){
Clipboard.SetText(convertedText.Text);
convertedText.Text = Clipboard.GetText();
}
else
答案 4 :(得分:-2)
尝试放
try
{
string foo = "bar" + 42;
}
catch
{
throw;
}