我正在尝试在按钮单击事件时复制整个表单

本文关键字:复制 表单 事件 单击 按钮 | 更新日期: 2023-09-27 18:31:22

我正在使用 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(',');                
}

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

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

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

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());