•  一、 以lable为例:    Form中放一个控件,让其启动和动态改变窗口大小时始终居中    int gLeft = this.Width / 2 - lable1.Width / 2; //this指Form  int gTop = this....

        一、 以lable为例:

     

            在Form中放一个控件,让其在启动和动态改变窗口大小时始终居中

     

                int gLeft = this.Width / 2 - lable1.Width / 2; //this指Form
                int gTop = this.Height / 2 - lable1.Height / 2;

                lable1.Location = new Point(gLeft, gTop);

     

       二、动态创建控件并找到或者删除控件

                1、 以Lable为例创建控件:

                            Label lbl = new Label();
                            lbl.Name = "lblNum" + m;
                            lbl.AutoSize = true;
                            lbl.BackColor = System.Drawing.Color.Transparent;
                            lbl.Font = new System.Drawing.Font("宋体", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
                            lbl.ForeColor = System.Drawing.Color.White;
                            lbl.Location = new System.Drawing.Point(lable1.Location.X - 150, 29);
                            lbl.TextAlign = System.Drawing.ContentAlignment.TopCenter;
                            lbl.Anchor = System.Windows.Forms.AnchorStyles.Top;
                           // this.Controls.Add(lbl);窗体中添加控件
                            this.groupBox2.Controls.Add(lbl);//groupBox2中添加控件

                  

                2、以Lable为例删除控件:

     

                if (this.groupBox2.Controls.ContainsKey("lable2") == true)
                {
                    this.groupBox2.Controls.RemoveByKey("lable2");
                }

     

     

     

           3、找到控件并对其赋值

     

     

                 Control[] control = this.Controls.Find("lable1" ,true);

                 if (control.Length == 1 && control[0] is Label)
                  {

                        (control[0] as Label).Text =“hello”;

                  }

    展开全文
  • Form设置窗体居中显示 当新实例化的窗体或被最小化的窗体,想居中显示 方法 /// <summary> /// Form设置窗体居中显示 /// </summary> public static void CenterScreen(this Form frm) { //...

    Form设置窗体居中显示

    设置第一次出现的位置StartPosition为CenterScreen
    在这里插入图片描述

    当运行时
    当新实例化的窗体或被最小化的窗体,设置居中显示

    方法

    /// <summary>
    /// 扩展方法
    /// </summary>
    public static class Extensions
    {
    	/// <summary>
    	/// Form设置窗体居中显示
    	/// </summary>
    	public static void CenterScreen(this Form frm)
    	{
    	    //激活窗体
    	    frm.Activate();
    	    //如果窗体是最小化状态,则设置为正常状态
    	    if (frm.WindowState == FormWindowState.Minimized) frm.WindowState = FormWindowState.Normal;
    	    //设置窗体位置居中
    	    frm.Location = new Point((SystemInformation.PrimaryMonitorSize.Width - frm.Width) / 2, 
    	        (SystemInformation.PrimaryMonitorSize.Height - frm.Height) / 2);
    	}
    }
    

    调用

    frm.CenterScreen();
    
    展开全文
  • C# 创建可填充Word表单

    2019-06-20 13:50:47
    这时候我们就可以通过表单控件来轻松实现这一功能。本文将介绍如何使用C#在Word文档中创建可填充的Word表单。 使用工具 • Visual Studio • Spire.Doc for .NET组件 添加以下代码前,需要下载Spire.Doc组件,并从...

    背景介绍

    有时候,我们需要制作一个Word模板文档,然后发给用户填写,但我们希望用户只能在指定位置填写内容,其他内容不允许编辑和修改。这时候我们就可以通过表单控件来轻松实现这一功能。
    本文将介绍如何使用C#在Word文档中创建可填充的Word表单。

    使用工具

    • Visual Studio
    Spire.Doc for .NET组件

    在添加以下代码前,需要下载Spire.Doc组件,并从安装路径下的bin文件夹中引用Spire.Doc.dll到程序中。

    代码

    在Word中,表单控件主要分为两种:

    • 旧式窗体域
    • 内容控件 (Word 2010及以后版本)

    下面看看如何使用Spire.Doc添加旧式窗体域和内容控件到Word模板文档。

    添加旧式窗体域

    Word 2007及以前的版本中是旧式窗体域。旧式窗体域分为:文本型窗体域、复选框型窗体域和下拉型窗体域。

    下面的代码创建了一个Word文档,然后添加了一个表格,并给表格添加文本型、复选框型和下拉型窗体域,最后保护Word文档。

    {
    //创建Document实例
    Document doc = new Document();
    //添加一个section
    Section section = doc.AddSection();
    
    //标题
    Paragraph title = section.AddParagraph();
    TextRange titleText = title.AppendText("职位申请表");
    titleText.CharacterFormat.FontName = "宋体";
    titleText.CharacterFormat.FontSize = 16f;
    title.Format.HorizontalAlignment = HorizontalAlignment.Center;
    
    //添加一个7行2列的表格
    Table table = section.AddTable(true);
    table.ResetCells(7, 2);
    
    //合并首行的单元格
    table.ApplyHorizontalMerge(0, 0, 1);
    
    //设置表头
    TableRow headerRow = table.Rows[0];
    headerRow.IsHeader = true;
    headerRow.RowFormat.BackColor = Color.FromArgb(0x00, 0x71, 0xb6);
    headerRow.Cells[0].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
    Paragraph headerParagraph = headerRow.Cells[0].AddParagraph();
    TextRange headerText = headerParagraph.AppendText("第一部分、个人信息");
    headerText.CharacterFormat.Bold = true;
    
    //添加段落到单元格[1,0]
    Paragraph paragraph = table.Rows[1].Cells[0].AddParagraph();
    TextRange textRange = paragraph.AppendText("姓名");
    
    //添加文本型窗体到单元格[1,1]
    paragraph = table.Rows[1].Cells[1].AddParagraph();
    AddTextFormField(paragraph, "Name");
    
    //添加段落到单元格[2,0]
    paragraph = table.Rows[2].Cells[0].AddParagraph();
    textRange = paragraph.AppendText("年龄");
    
    //添加文本型窗体到单元格[2,1]
    paragraph = table.Rows[2].Cells[1].AddParagraph();
    AddTextFormField(paragraph, "Age");
    
    //添加段落到单元格[3,0]
    paragraph = table.Rows[3].Cells[0].AddParagraph();
    textRange = paragraph.AppendText("婚否");
    
    //添加复选框型窗体到单元格[3,1]
    paragraph = table.Rows[3].Cells[1].AddParagraph();
    AddCheckBoxFormField(paragraph, "Married");
    
    //添加段落到单元格[4,0]
    paragraph = table.Rows[4].Cells[0].AddParagraph();
    textRange = paragraph.AppendText("专业");
    
    //添加下拉型窗体到单元格[4,1]
    paragraph = table.Rows[4].Cells[1].AddParagraph();
    AddDropDownFormField(paragraph, "Major");
    
    //添加段落到单元格[5,0]
    paragraph = table.Rows[5].Cells[0].AddParagraph();
    textRange = paragraph.AppendText("申请职位");
    
    //添加文本型窗体到单元格[5,1]
    paragraph = table.Rows[5].Cells[1].AddParagraph();
    AddTextFormField(paragraph, "Position");
    
    //添加段落到单元格[6,0]
    paragraph = table.Rows[6].Cells[0].AddParagraph();
    textRange = paragraph.AppendText("申请理由");
    
    //添加文本型窗体到单元格[6,1]
    paragraph = table.Rows[6].Cells[1].AddParagraph();
    AddTextFormField(paragraph, "Reason");
    
    //创建段落样式
    ParagraphStyle style = new ParagraphStyle(doc);
    style.Name = "style";
    style.CharacterFormat.FontName = "宋体";
    style.CharacterFormat.FontSize = 11f;
    doc.Styles.Add(style);
    
    for (int i = 0; i < table.Rows.Count; i++)
    {
        //设置表格行高
        table.Rows[i].Height = 20f;
        for (int j = 0; j < table.Rows[i].Cells.Count; j++)
        {
            //设置单元格文本垂直对齐方式
            table[i, j].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
            //设置单元格的宽度,即列宽
            table[i, j].Width = 200f;
            foreach (Paragraph para in table[i, j].Paragraphs)
            {
                //应用段落样式
                para.ApplyStyle(style.Name);
            }
        }
    }
    
    //设置表格居中排列
    table.TableFormat.HorizontalAlignment = RowAlignment.Center;
    
    //保护文档,并设置模式为仅允许编辑表单域
    doc.Protect(ProtectionType.AllowOnlyFormFields, "123");
    
    //保存
    doc.SaveToFile("AddFormFields.docx", FileFormat.Docx2013);
    }
    
    //添加文本型窗体、复选框型窗体和下拉型窗体的方法如下:
    //添加文本型窗体
    static void AddTextFormField(Paragraph paragraph, string fieldName)
    {
        TextFormField textForm = paragraph.AppendField(fieldName, FieldType.FieldFormTextInput) as TextFormField;           
        textForm.DefaultText = "";
        textForm.Text = "";
    }
    
    //添加复选框型窗体
    static void AddCheckBoxFormField(Paragraph paragraph, string fieldName)
    {
        CheckBoxFormField checkBoxForm = paragraph.AppendField(fieldName,    FieldType.FieldFormCheckBox) as CheckBoxFormField;
        checkBoxForm.SizeType = CheckBoxSizeType.Exactly;
        checkBoxForm.CheckBoxSize = 8;
    }
    
    //添加下拉型窗体
    static void AddDropDownFormField(Paragraph paragraph, string fieldName) 
    {
        DropDownFormField dropDownForm = paragraph.AppendField(fieldName, FieldType.FieldFormDropDown) as DropDownFormField ;
        dropDownForm.DropDownItems.Add("选择一个专业");
        dropDownForm.DropDownItems.Add("计算机科学与技术");
        dropDownForm.DropDownItems.Add("软件工程");
        dropDownForm.DropDownItems.Add("信息管理");
        dropDownForm.DropDownItems.Add("电子商务");
    }
    }
    }

    用户打开下面的生成文档,只能编辑表格中的窗体,不能修改其他内容:
    C# 创建可填充Word表单

    添加内容控件

    Word 2010及以后的版本中添加了内容控件。下面就介绍如何使用Spire.Doc添加内容控件到Word文档。

    Spire.Doc支持多种内容控件类型,可在枚举SdtType中查看,如下图所示:
    C# 创建可填充Word表单

    //创建Document实例 
    Document document = new Document();
    //添加一个section
    Section section = document.AddSection();
    
    //添加段落
    Paragraph paragraph = section.AddParagraph();
    paragraph.AppendText("姓名: ");
    
    //添加纯文本内容控件 
    StructureDocumentTagInline sdt = new StructureDocumentTagInline(document);
    paragraph.ChildObjects.Add(sdt);
    sdt.SDTProperties.SDTType = SdtType.Text;
    sdt.SDTProperties.Alias = "纯文本";
    //设置展示文本
    SdtText text = new SdtText(false);
    text.IsMultiline = true;
    sdt.SDTProperties.ControlProperties = text;
    TextRange rt = new TextRange(document);
    rt.Text = "姓名";
    sdt.SDTContent.ChildObjects.Add(rt);
    
    paragraph.AppendBreak(BreakType.LineBreak);
    
    //添加段落
    paragraph = section.AddParagraph();
    paragraph.AppendText("性别: ");
    
    //添加下拉列表内容控件
    sdt = new StructureDocumentTagInline(document);
    paragraph.ChildObjects.Add(sdt);
    sdt.SDTProperties.SDTType = SdtType.DropDownList;
    sdt.SDTProperties.Alias = "下拉列表";
    //添加下拉选项
    SdtDropDownList sddl = new SdtDropDownList();
    sddl.ListItems.Add(new SdtListItem("男", "1"));
    sddl.ListItems.Add(new SdtListItem("女", "2"));
    sdt.SDTProperties.ControlProperties = sddl;
    //设置控件展示的初始选项
    rt = new TextRange(document);
    rt.Text = sddl.ListItems[1].DisplayText;
    sdt.SDTContent.ChildObjects.Add(rt);
    
    paragraph.AppendBreak(BreakType.LineBreak);
    
    //添加段落 
    paragraph = section.AddParagraph();
    paragraph.AppendText("出生日期: ");
    
    //添加日期选取器内容控件 
    sdt = new StructureDocumentTagInline(document);
    paragraph.ChildObjects.Add(sdt);
    sdt.SDTProperties.SDTType = SdtType.DatePicker;
    sdt.SDTProperties.Alias = "日期选取器";
    //设置日历格式
    SdtDate date = new SdtDate();
    date.CalendarType = CalendarType.Default;
    date.DateFormat = "yyyy.MM.dd";
    date.FullDate = DateTime.Now;
    sdt.SDTProperties.ControlProperties = date;
    //设置展示日期
    rt = new TextRange(document);
    rt.Text = "1991.02.08";
    sdt.SDTContent.ChildObjects.Add(rt);
    
    paragraph.AppendBreak(BreakType.LineBreak);
    
    //添加段落
    paragraph = section.AddParagraph();
    paragraph.AppendText("国籍: ");
    
    //添加组合框内容控件  
    sdt = new StructureDocumentTagInline(document);
    paragraph.ChildObjects.Add(sdt);
    sdt.SDTProperties.SDTType = SdtType.ComboBox;
    sdt.SDTProperties.Alias = "组合框";
    //添加选项
    SdtComboBox cb = new SdtComboBox();
    cb.ListItems.Add(new SdtListItem("中国", "1"));
    cb.ListItems.Add(new SdtListItem("英国", "2"));
    cb.ListItems.Add(new SdtListItem("意大利", "3"));
    sdt.SDTProperties.ControlProperties = cb;
    //设置展示选项
    rt = new TextRange(document);
    rt.Text = cb.ListItems[0].DisplayText;
    sdt.SDTContent.ChildObjects.Add(rt);
    
    paragraph.AppendBreak(BreakType.LineBreak);
    
    //创建段落样式
    ParagraphStyle style = new ParagraphStyle(document);
    style.Name = "style";
    style.CharacterFormat.FontName = "宋?体¬?";
    style.CharacterFormat.FontSize = 11f;
    document.Styles.Add(style);
    
    //应用段落样式
    foreach(Paragraph para in section.Paragraphs)
    {
    para.ApplyStyle(style.Name);
    }
    
    //保护文档,仅允许修改表单
    document.Protect(ProtectionType.AllowOnlyFormFields, "123");
    
    //保存          
    document.SaveToFile("ContentControls.docx", FileFormat.Docx2013);

    生成文档:
    C# 创建可填充Word表单

    转载于:https://blog.51cto.com/13688031/2310656

    展开全文
  • 方圆几百Idea You are my sunshine. C#常用的form窗体属性(最大化、最小化、窗体居中) 一、窗体居中 //窗体居中 this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 二、去掉...

    方圆几百里Idea

    You are my sunshine.

    C#常用的form窗体属性(最大化、最小化、窗体居中)

    一、窗体居中

                //窗体居中
                this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

    二、去掉最小化、最大化

                //去掉最小化,去掉最大化
                MinimizeBox = false;
                MaximizeBox = false;

    三、设置窗体不可拉伸

    设置窗体的FormBorderStyle属性,将默认的”Sizable”改为” FixedSingle”或” Fixed3D”即可。

    展开全文
  • 通过设置Panel的Location实现,具体代码如下: Panel.Location = new Point((this.Size.Width - Panel.Size.Width) / 2, (this.Size.Height - Panel.Size.Height) / 2);

    通过设置Panel的Location实现,具体代码如下:

    Panel.Location = new Point((this.Size.Width - Panel.Size.Width) / 2, (this.Size.Height - Panel.Size.Height) / 2);

    展开全文
  • 个人理解,开发应用程序的...我这里统称为编辑,而编辑开发设计中的场景就显得较为通用,大多都采用编辑组件(文本框、下拉框、选择框、数字框等)来供用户进行编辑操作,由于查询的开发设计场景需与实际的数据及...
  • 1、 Form中放一个控件,让其启动时始终居中 int gLeft = this.Width / 2 - groupControl1.Width / 2; int gTop = this.Height / 2 - groupControl1.Height / 2; groupControl1.Location = new Point(gLeft, ...
  • 如何让form标签居中

    2016-11-10 21:12:53
    最简单的方法是将form放到一个div 中,然后调整div的位置即可! .css div{ margin:0px auto;  } .html * 上下间距慢慢调试
  • C#打印表格

    2017-07-11 15:59:59
    C#-WinForm-打印控件 打印控件(全添加) 绘制如下窗体 一、PrintDocument -打印的基础 首先放置PrintDocument控件,双击事件PrintPage设置要打印的样式(李献策lxc)   //第...
  • 现在上班有一个要求,把头像圆形显示,而C# vs 自带的控件都是方形的,下面是根据几个大牛提示改编的,算是实现了,不过还有待改进!代码贴上: using System; using System.Collections.Generic; using System....
  • 第六周学习笔记—C#各类控件的输入输出 1.思维导图 知识点汇总: 着重介绍几个常用控件: 数据显示控件 DataGridView控件 列设置 a)、列的宽度铺满这个控件  设置如下:把AutoSizeColumnsMode=Fill;//可以...
  • 这里主要讲tableLayoutPanel的一个最重要的用法,先看效果
  • ASP.net Table 控件应用

    2014-04-06 15:36:36
    前阵子为页面动态输出table而纠结好久,后来
  • DataGridView是winfrom一个很强大的控件,但是有些时候这个控件外观需要自己动手重绘。接下是个人项目中遇到到一些问题。 1.不管是给单元格添加序号也好,还是给指定单元格加文本,其实都是重绘某个单元格。 ...
  • WPF的表单页面

    2019-05-15 17:25:31
    开发工具与关键技术:Vs/C#、WPF 作者:张文静 撰写时间:2019/5/13 基于XAML语言的表单: 首先用网格布局,定义行和列的数量,以及行高和列宽的比例来调整控件的布局,分别为七行三列,见截图: 当行数为零,列数...
  • PyQt5:常用控件

    2019-06-29 05:20:23
    0、概述  ... QAbstractButton类为抽象类,不能实例化,必须由其他的按钮类继承QAbstractButton类,来实现不同的功能和表现形式,常见的按钮QPushButton,QToolButton,QRadioButton和QCheckBo...
  • 下文所有内容转自开源中国:... ============================================================================= ASP.NET中服务器控件Table动态生成表格 1 Table tb = new Table...
  • ExtJs简单form表单控件

    2012-04-13 15:05:16
    ExtJs常用表单控件 2011-05-31 18:14 我们还是从最简单的代码实例开始吧:          //js代码  var form1 = new Ext.form.FormPanel({  width:350,  frame:true,//圆角和浅蓝色背景  ...
  • 一、C# Word操作引入Word COM组件菜单=》项目=》添加引用=》COM=》Microsoft Word 11.0 Object Libraryusing Word = Microsoft.Office.Interop.Word;1、功能:将数据以自制表格形式插入WOR
  • 前端之HTML,CSS(二)  HTML标签  列表标签  无序列表:闭标签,由<ul><li></li>...</ul>组合而成,效果成纵向列表。格式:<ul><li>content<...标签...
1 2 3 4 5 ... 20
收藏数 797
精华内容 318