我试图在按钮点击事件上复制整个表格

时间:2013-09-13 12:06:04

标签: c#

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

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

但它不起作用,任何人都有任何想法,或者我是否采取了错误的方式?

3 个答案:

答案 0 :(得分: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(',');                
}

答案 1 :(得分:0)

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

Clipboard.SetText("Your String" + Textbox1.Text);

答案 2 :(得分: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());