我使用 a
Clipboard.SetText(textbox1.Text);
是为了将文本框的内容复制到剪贴板,但我也希望能够复制整个表单文本。
我尝试使用
Clipboard.SetText(FrmMain.Text);
但它不起作用,任何人有任何想法或者我是否以错误的方式解决这个问题?
我使用 a
Clipboard.SetText(textbox1.Text);
是为了将文本框的内容复制到剪贴板,但我也希望能够复制整个表单文本。
我尝试使用
Clipboard.SetText(FrmMain.Text);
但它不起作用,任何人有任何想法或者我是否以错误的方式解决这个问题?
将以下逻辑添加到私有方法并在按钮单击处理程序中调用此方法。
StringBuilder text = new StringBuilder();
foreach (Control item in Controls)
{
if (item is TextBox)
{
text.Append(item.Text);
text.Append(',');
}
}
Clipboard.SetText(text.ToString());
编辑
在不检查控件类型是否为TextBox
您的情况下,您只能获得如下文本框,
foreach (Control item in Controls.OfType<TextBox>())
{
text.Append(item.Text);
text.Append(',');
}
您应该创建自己的方法来从所有控件中获取字符串。
private string GetFormText()
{
StringBuilder sb = new StringBuilder();
foreach (Control control in this.Controls)
{
if (control.GetType() == typeof (TextBox) ||
control.GetType() == typeof (ComboBox) ||
control.GetType() == typeof (Label))
{
String controlText = String.Format("{0}:{1}", control.Name, control.Text);
sb.AppendLine(controlText);
}
}
return sb.ToString();
}
然后您可以像这样保存表单文本:
Clipboard.SetText(this.GetFormText());
如果表单中的文本是静态的,您始终可以将其作为字符串添加到您的语句中
Clipboard.SetText("Your String" + Textbox1.Text);