C\#Word 문서 에 내용 컨트롤 을 추가 하 는 방법 예시

7327 단어 c#word컨트롤
머리말
MS Word 에 서 는 콘 텐 츠 컨트롤 을 통 해 워드 문서 에 미리 정 의 된 모듈 을 삽입 하고 모듈 의 콘 텐 츠 형식(예 를 들 어 그림,날짜,목록 또는 포맷 된 텍스트 등)을 지정 하여 구조 화 된 워드 문 서 를 만 들 수 있다 는 것 을 잘 알 고 있 을 것 입 니 다.
C\#워드 문서 에 조합 상자,텍스트,그림,날짜 선택 기 및 드 롭 다운 목록 등 콘 텐 츠 컨트롤 을 추가 하 는 방법 을 살 펴 보 겠 습 니 다.
콤 보 상자 내용 컨트롤 추가
조합 상 자 는 사용자 가 선택 할 수 있 는 항목 목록 을 표시 하 는 데 사 용 됩 니 다.드 롭 다운 목록 과 달리 콤 보 상 자 는 사용자 가 항목 을 편집 하거나 추가 할 수 있 도록 합 니 다.
핵심 코드 는 다음 과 같 습 니 다.

//                SDT type Combo Box
StructureDocumentTagInline sd = new StructureDocumentTagInline(document);
paragraph.ChildObjects.Add(sd);
sd.SDTProperties.SDTType = SdtType.ComboBox;

//    Combo Box,               
SdtComboBox cb = new SdtComboBox();
cb.ListItems.Add(new SdtListItem("Cat"));
cb.ListItems.Add(new SdtListItem("Dog"));
sd.SDTProperties.ControlProperties = cb;
 
//      
TextRange rt = new TextRange(document);
rt.Text = cb.ListItems[0].DisplayText;
sd.SDTContent.ChildObjects.Add(rt);

텍스트 내용 컨트롤 추가
일반 텍스트 컨트롤 은 텍스트 를 포함 하지만 표,그림 또는 다른 내용 컨트롤 과 같은 다른 항목 은 포함 할 수 없습니다.이 밖 에 일반 텍스트 컨트롤 의 모든 텍스트 는 같은 형식 을 가지 고 있다.
텍스트 내용 컨트롤 추가 절차 와 콤 보 상자 내용 컨트롤 추가 유사
핵심 코드 는 다음 과 같 습 니 다.

paragraph = section.AddParagraph();
sd = new StructureDocumentTagInline(document);
paragraph.ChildObjects.Add(sd);
sd.SDTProperties.SDTType = SdtType.Text;
SdtText text = new SdtText(true);
text.IsMultiline = true;
sd.SDTProperties.ControlProperties = text;
rt = new TextRange(document);
rt.Text = "Text";
sd.SDTContent.ChildObjects.Add(rt);

그림 내용 컨트롤 추가
그림 컨트롤 은 그림 을 표시 하 는 데 사 용 됩 니 다.디자인 할 때 나 실행 할 때 그림 을 지정 할 수 있 습 니 다.사용자 도 이 컨트롤 을 누 르 면 문서 에 삽입 할 그림 을 선택 할 수 있 습 니 다.
핵심 코드:

paragraph = section.AddParagraph();
sd = new StructureDocumentTagInline(document);
paragraph.ChildObjects.Add(sd);
sd.SDTProperties.SDTType = SdtType.Picture;
DocPicture pic = new DocPicture(document) { Width = 10, Height = 10 };
pic.LoadImage(Image.FromFile("C:\\Icon.jpg"));
sd.SDTContent.ChildObjects.Add(pic);

날짜 선택 기 내용 컨트롤 추가
날짜 선택 기 는 날 짜 를 선택 할 달력 UI 를 제공 합 니 다.최종 사용자 가 컨트롤 의 아래쪽 화살 표를 누 르 면 달력 이 표 시 됩 니 다.
핵심 코드:

paragraph = section.AddParagraph();
sd = new StructureDocumentTagInline(document);
paragraph.ChildObjects.Add(sd);
sd.SDTProperties.SDTType = SdtType.DatePicker;
SdtDate date = new SdtDate();
date.CalendarType = CalendarType.Default;
date.DateFormat = "yyyy.MM.dd";
date.FullDate = DateTime.Now;
sd.SDTProperties.ControlProperties = date;
rt = new TextRange(document);
rt.Text = "1990.02.08";
sd.SDTContent.ChildObjects.Add(rt);

드 롭 다운 목록 내용 컨트롤 추가
드 롭 다운 목록 은 사용자 가 선택 할 수 있 는 항목 목록 을 보 여 줍 니 다.콤 보 상자 와 달리 드 롭 다운 목록 은 사용자 가 항목 을 추가 하거나 편집 할 수 없습니다.
핵심 코드:

paragraph = section.AddParagraph();
sd = new StructureDocumentTagInline(document);
paragraph.ChildObjects.Add(sd);
sd.SDTProperties.SDTType = SdtType.DropDownList;
SdtDropDownList sddl = new SdtDropDownList();
sddl.ListItems.Add(new SdtListItem("Harry"));
sddl.ListItems.Add(new SdtListItem("Jerry"));
sd.SDTProperties.ControlProperties = sddl;
rt = new TextRange(document);
rt.Text = sddl.ListItems[0].DisplayText;
sd.SDTContent.ChildObjects.Add(rt);

모든 코드:

using System;
using System.Drawing;
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace Insert_content_control_in_word_document
{
 class Program
 {
  static void Main(string[] args)
  {
   //      Word  
   Document document = new Document();
   Section section = document.AddSection();
   Paragraph paragraph = section.AddParagraph();

   //         
   StructureDocumentTagInline sd = new StructureDocumentTagInline(document);
   paragraph.ChildObjects.Add(sd);
   sd.SDTProperties.SDTType = SdtType.ComboBox;
   SdtComboBox cb = new SdtComboBox();
   cb.ListItems.Add(new SdtListItem("Cat"));
   cb.ListItems.Add(new SdtListItem("Dog"));
   sd.SDTProperties.ControlProperties = cb;
   TextRange rt = new TextRange(document);
   rt.Text = cb.ListItems[0].DisplayText;
   sd.SDTContent.ChildObjects.Add(rt);

   //        
   paragraph = section.AddParagraph();
   sd = new StructureDocumentTagInline(document);
   paragraph.ChildObjects.Add(sd);
   sd.SDTProperties.SDTType = SdtType.Text;
   SdtText text = new SdtText(true);
   text.IsMultiline = true;
   sd.SDTProperties.ControlProperties = text;
   rt = new TextRange(document);
   rt.Text = "Text";
   sd.SDTContent.ChildObjects.Add(rt);

   //        
   paragraph = section.AddParagraph();
   sd = new StructureDocumentTagInline(document);
   paragraph.ChildObjects.Add(sd);
   sd.SDTProperties.SDTType = SdtType.Picture;
   DocPicture pic = new DocPicture(document) { Width = 10, Height = 10 };
   pic.LoadImage(Image.FromFile("C:\\Icon.jpg"));
   sd.SDTContent.ChildObjects.Add(pic);
 
   //           
   paragraph = section.AddParagraph();
   sd = new StructureDocumentTagInline(document);
   paragraph.ChildObjects.Add(sd);
   sd.SDTProperties.SDTType = SdtType.DatePicker;
   SdtDate date = new SdtDate();
   date.CalendarType = CalendarType.Default;
   date.DateFormat = "yyyy.MM.dd";
   date.FullDate = DateTime.Now;
   sd.SDTProperties.ControlProperties = date;
   rt = new TextRange(document);
   rt.Text = "1990.02.08";
   sd.SDTContent.ChildObjects.Add(rt);
 
   //          
   paragraph = section.AddParagraph();
   sd = new StructureDocumentTagInline(document);
   paragraph.ChildObjects.Add(sd);
   sd.SDTProperties.SDTType = SdtType.DropDownList;
   SdtDropDownList sddl = new SdtDropDownList();
   sddl.ListItems.Add(new SdtListItem("Harry"));
   sddl.ListItems.Add(new SdtListItem("Jerry"));
   sd.SDTProperties.ControlProperties = sddl;
   rt = new TextRange(document);
   rt.Text = sddl.ListItems[0].DisplayText;
   sd.SDTContent.ChildObjects.Add(rt);

   //       
   string resultfile = "sample.docx";
   document.SaveToFile(resultfile, FileFormat.Docx);
   System.Diagnostics.Process.Start(resultfile);   
  }
 }
}
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 댓 글 을 남 겨 주 십시오.

좋은 웹페이지 즐겨찾기