-3

我使用 a Clipboard.SetText(textbox1.Text); 是为了将文本框的内容复制到剪贴板,但我也希望能够复制整个表单文本。

我尝试使用 Clipboard.SetText(FrmMain.Text);

但它不起作用,任何人有任何想法或者我是否以错误的方式解决这个问题?

4

3 回答 3

1

将以下逻辑添加到私有方法并在按钮单击处理程序中调用此方法。

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(',');                
}
于 2013-09-13T12:23:42.750 回答
0

您应该创建自己的方法来从所有控件中获取字符串。

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());
于 2013-09-13T12:26:37.640 回答
0

如果表单中的文本是静态的,您始终可以将其作为字符串添加到您的语句中

Clipboard.SetText("Your String" + Textbox1.Text);
于 2013-09-13T12:08:24.707 回答