diff --git a/ComponentProgramming/ComponentProgramming/ComponentProgramming.csproj b/ComponentProgramming/ComponentProgramming/ComponentProgramming.csproj
index 3e210aa..f0d4be0 100644
--- a/ComponentProgramming/ComponentProgramming/ComponentProgramming.csproj
+++ b/ComponentProgramming/ComponentProgramming/ComponentProgramming.csproj
@@ -7,4 +7,8 @@
enable
+
+
+
+
diff --git a/ComponentProgramming/ComponentProgramming/Components/testComp.Designer.cs b/ComponentProgramming/ComponentProgramming/Components/testComp.Designer.cs
new file mode 100644
index 0000000..1e9a77b
--- /dev/null
+++ b/ComponentProgramming/ComponentProgramming/Components/testComp.Designer.cs
@@ -0,0 +1,36 @@
+namespace ComponentProgramming
+{
+ partial class testComp
+ {
+ ///
+ /// Обязательная переменная конструктора.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Освободить все используемые ресурсы.
+ ///
+ /// истинно, если управляемый ресурс должен быть удален; иначе ложно.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Код, автоматически созданный конструктором компонентов
+
+ ///
+ /// Требуемый метод для поддержки конструктора — не изменяйте
+ /// содержимое этого метода с помощью редактора кода.
+ ///
+ private void InitializeComponent()
+ {
+ components = new System.ComponentModel.Container();
+ }
+
+ #endregion
+ }
+}
diff --git a/ComponentProgramming/ComponentProgramming/Components/testComp.cs b/ComponentProgramming/ComponentProgramming/Components/testComp.cs
new file mode 100644
index 0000000..e30d048
--- /dev/null
+++ b/ComponentProgramming/ComponentProgramming/Components/testComp.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ComponentProgramming
+{
+ public partial class testComp : Component
+ {
+
+ private string _fileName;
+
+ public string FileName
+ {
+ set
+ {
+ if (string.IsNullOrEmpty(value)) return;
+ if (!value.EndsWith(".txt"))
+ {
+ throw new ArgumentException("No txt file");
+ }
+ _fileName = value;
+ }
+ }
+
+ public testComp()
+ {
+ InitializeComponent();
+ _fileName = string.Empty;
+ }
+
+ public testComp(IContainer container)
+ {
+ container.Add(this);
+
+ InitializeComponent();
+ _fileName = string.Empty;
+ }
+
+ public bool saveToFile(string[] texts)
+ {
+ CheckFileExist();
+ using var writer = new StreamWriter(_fileName, true);
+ foreach (var text in texts)
+ {
+ writer.WriteLine(text);
+ }
+ writer.Flush();
+ return true;
+ }
+
+ private void CheckFileExist()
+ {
+ if (string.IsNullOrEmpty(_fileName))
+ {
+ throw new ArgumentNullException(_fileName);
+ }
+ if(!File.Exists("../"+_fileName))
+ {
+ throw new FileNotFoundException(_fileName);
+ }
+ }
+ }
+}
diff --git a/ComponentProgramming/ComponentProgramming/ControlComboBox.Designer.cs b/ComponentProgramming/ComponentProgramming/Control/ControlComboBox.Designer.cs
similarity index 100%
rename from ComponentProgramming/ComponentProgramming/ControlComboBox.Designer.cs
rename to ComponentProgramming/ComponentProgramming/Control/ControlComboBox.Designer.cs
diff --git a/ComponentProgramming/ComponentProgramming/ControlComboBox.cs b/ComponentProgramming/ComponentProgramming/Control/ControlComboBox.cs
similarity index 100%
rename from ComponentProgramming/ComponentProgramming/ControlComboBox.cs
rename to ComponentProgramming/ComponentProgramming/Control/ControlComboBox.cs
diff --git a/ComponentProgramming/ComponentProgramming/ControlComboBox.resx b/ComponentProgramming/ComponentProgramming/Control/ControlComboBox.resx
similarity index 100%
rename from ComponentProgramming/ComponentProgramming/ControlComboBox.resx
rename to ComponentProgramming/ComponentProgramming/Control/ControlComboBox.resx
diff --git a/ComponentProgramming/ComponentProgramming/ControlImage.Designer.cs b/ComponentProgramming/ComponentProgramming/Control/ControlImage.Designer.cs
similarity index 100%
rename from ComponentProgramming/ComponentProgramming/ControlImage.Designer.cs
rename to ComponentProgramming/ComponentProgramming/Control/ControlImage.Designer.cs
diff --git a/ComponentProgramming/ComponentProgramming/ControlImage.cs b/ComponentProgramming/ComponentProgramming/Control/ControlImage.cs
similarity index 100%
rename from ComponentProgramming/ComponentProgramming/ControlImage.cs
rename to ComponentProgramming/ComponentProgramming/Control/ControlImage.cs
diff --git a/ComponentProgramming/ComponentProgramming/ControlImage.resx b/ComponentProgramming/ComponentProgramming/Control/ControlImage.resx
similarity index 100%
rename from ComponentProgramming/ComponentProgramming/ControlImage.resx
rename to ComponentProgramming/ComponentProgramming/Control/ControlImage.resx
diff --git a/ComponentProgramming/ComponentProgramming/ControlListBox.Designer.cs b/ComponentProgramming/ComponentProgramming/Control/ControlListBox.Designer.cs
similarity index 100%
rename from ComponentProgramming/ComponentProgramming/ControlListBox.Designer.cs
rename to ComponentProgramming/ComponentProgramming/Control/ControlListBox.Designer.cs
diff --git a/ComponentProgramming/ComponentProgramming/ControlListBox.cs b/ComponentProgramming/ComponentProgramming/Control/ControlListBox.cs
similarity index 100%
rename from ComponentProgramming/ComponentProgramming/ControlListBox.cs
rename to ComponentProgramming/ComponentProgramming/Control/ControlListBox.cs
diff --git a/ComponentProgramming/ComponentProgramming/ControlListBox.resx b/ComponentProgramming/ComponentProgramming/Control/ControlListBox.resx
similarity index 100%
rename from ComponentProgramming/ComponentProgramming/ControlListBox.resx
rename to ComponentProgramming/ComponentProgramming/Control/ControlListBox.resx
diff --git a/ComponentProgramming/ComponentProgramming/ControlTextBox.Designer.cs b/ComponentProgramming/ComponentProgramming/Control/ControlTextBox.Designer.cs
similarity index 100%
rename from ComponentProgramming/ComponentProgramming/ControlTextBox.Designer.cs
rename to ComponentProgramming/ComponentProgramming/Control/ControlTextBox.Designer.cs
diff --git a/ComponentProgramming/ComponentProgramming/ControlTextBox.cs b/ComponentProgramming/ComponentProgramming/Control/ControlTextBox.cs
similarity index 97%
rename from ComponentProgramming/ComponentProgramming/ControlTextBox.cs
rename to ComponentProgramming/ComponentProgramming/Control/ControlTextBox.cs
index 3be207e..31f04a2 100644
--- a/ComponentProgramming/ComponentProgramming/ControlTextBox.cs
+++ b/ComponentProgramming/ComponentProgramming/Control/ControlTextBox.cs
@@ -1,4 +1,4 @@
-using ComponentProgramming.Exceptions;
+using ComponentProgramming.Control.Exceptions;
using System;
using System.Collections.Generic;
using System.ComponentModel;
diff --git a/ComponentProgramming/ComponentProgramming/ControlTextBox.resx b/ComponentProgramming/ComponentProgramming/Control/ControlTextBox.resx
similarity index 100%
rename from ComponentProgramming/ComponentProgramming/ControlTextBox.resx
rename to ComponentProgramming/ComponentProgramming/Control/ControlTextBox.resx
diff --git a/ComponentProgramming/ComponentProgramming/Exceptions/NumberException.cs b/ComponentProgramming/ComponentProgramming/Control/Exceptions/NumberException.cs
similarity index 85%
rename from ComponentProgramming/ComponentProgramming/Exceptions/NumberException.cs
rename to ComponentProgramming/ComponentProgramming/Control/Exceptions/NumberException.cs
index fed8d3c..94d6ba1 100644
--- a/ComponentProgramming/ComponentProgramming/Exceptions/NumberException.cs
+++ b/ComponentProgramming/ComponentProgramming/Control/Exceptions/NumberException.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace ComponentProgramming.Exceptions
+namespace ComponentProgramming.Control.Exceptions
{
public class NumberException : Exception
{
diff --git a/ComponentProgramming/ComponentProgramming/Person.cs b/ComponentProgramming/ComponentProgramming/Control/Person.cs
similarity index 78%
rename from ComponentProgramming/ComponentProgramming/Person.cs
rename to ComponentProgramming/ComponentProgramming/Control/Person.cs
index e1e44af..feaeacc 100644
--- a/ComponentProgramming/ComponentProgramming/Person.cs
+++ b/ComponentProgramming/ComponentProgramming/Control/Person.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace Forms
+namespace ComponentProgramming.Control
{
public class Person
{
@@ -14,8 +14,8 @@ namespace Forms
public Person() { }
- public Person(int id, string name, string surname)
- {
+ public Person(int id, string name, string surname)
+ {
Name = name;
Id = id;
Surname = surname;
diff --git a/ComponentProgramming/ComponentProgramming/LargeTextComponent.Designer.cs b/ComponentProgramming/ComponentProgramming/LargeTextComponent.Designer.cs
new file mode 100644
index 0000000..fe4420b
--- /dev/null
+++ b/ComponentProgramming/ComponentProgramming/LargeTextComponent.Designer.cs
@@ -0,0 +1,36 @@
+namespace ComponentProgramming.Components
+{
+ partial class LargeTextComponent
+ {
+ ///
+ /// Обязательная переменная конструктора.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Освободить все используемые ресурсы.
+ ///
+ /// истинно, если управляемый ресурс должен быть удален; иначе ложно.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Код, автоматически созданный конструктором компонентов
+
+ ///
+ /// Требуемый метод для поддержки конструктора — не изменяйте
+ /// содержимое этого метода с помощью редактора кода.
+ ///
+ private void InitializeComponent()
+ {
+ components = new System.ComponentModel.Container();
+ }
+
+ #endregion
+ }
+}
diff --git a/ComponentProgramming/ComponentProgramming/LargeTextComponent.cs b/ComponentProgramming/ComponentProgramming/LargeTextComponent.cs
new file mode 100644
index 0000000..059638a
--- /dev/null
+++ b/ComponentProgramming/ComponentProgramming/LargeTextComponent.cs
@@ -0,0 +1,63 @@
+using System.ComponentModel;
+using MigraDoc.DocumentObjectModel;
+using MigraDoc.DocumentObjectModel.Tables;
+using MigraDoc.Rendering;
+
+namespace ComponentProgramming.Components
+{
+ public partial class LargeTextComponent : Component
+ {
+
+ private Document? _document;
+
+ private Section? _section;
+
+ public LargeTextComponent()
+ {
+ InitializeComponent();
+ }
+
+ public LargeTextComponent(IContainer container)
+ {
+ container.Add(this);
+
+ InitializeComponent();
+ }
+
+ public void CreateDocument(string docPath, string title, string[] rows)
+ {
+ if(string.IsNullOrEmpty(docPath))
+ {
+ throw new ArgumentNullException("Введите путь до файла!");
+ }
+ if(string.IsNullOrEmpty(title))
+ {
+ throw new ArgumentNullException("Введите заголовок");
+ }
+ if(rows.Length <= 0)
+ {
+ throw new ArgumentNullException("Нету данных для сохранения");
+ }
+
+ _document = new Document();
+ var style = _document.Styles["Normal"];
+ style.Font.Name = "Times New Roman";
+ style.Font.Size = 14;
+
+ _section = _document.AddSection();
+
+ var paragraph = _section.AddParagraph(title);
+ paragraph.Format.SpaceAfter = "0.1cm";
+ paragraph.Format.Font.Bold = true;
+ foreach (var row in rows)
+ {
+ _section.AddParagraph(row);
+ }
+
+ var renderer = new PdfDocumentRenderer(true);
+ renderer.Document = _document;
+ renderer.RenderDocument();
+ renderer.PdfDocument.Save(docPath);
+ }
+ }
+}
diff --git a/ComponentProgramming/Forms/Form.Designer.cs b/ComponentProgramming/Forms/Form.Designer.cs
index 9fab22f..4c974aa 100644
--- a/ComponentProgramming/Forms/Form.Designer.cs
+++ b/ComponentProgramming/Forms/Form.Designer.cs
@@ -28,13 +28,13 @@
///
private void InitializeComponent()
{
+ components = new System.ComponentModel.Container();
controlComboBox = new ComponentProgramming.ControlComboBox();
controlTextBox = new ComponentProgramming.ControlTextBox();
buttonGetObj = new Button();
- buttonClear = new Button();
buttonEnter = new Button();
- buttonAdd = new Button();
controlListBox = new ComponentProgramming.ControlListBox();
+ largeTextComponent = new ComponentProgramming.Components.LargeTextComponent(components);
SuspendLayout();
//
// controlComboBox
@@ -58,7 +58,7 @@
//
// buttonGetObj
//
- buttonGetObj.Location = new Point(23, 415);
+ buttonGetObj.Location = new Point(12, 415);
buttonGetObj.Name = "buttonGetObj";
buttonGetObj.Size = new Size(126, 23);
buttonGetObj.TabIndex = 3;
@@ -66,16 +66,6 @@
buttonGetObj.UseVisualStyleBackColor = true;
buttonGetObj.Click += buttonGetObj_Click;
//
- // buttonClear
- //
- buttonClear.Location = new Point(654, 415);
- buttonClear.Name = "buttonClear";
- buttonClear.Size = new Size(134, 26);
- buttonClear.TabIndex = 4;
- buttonClear.Text = "Очистить объекты";
- buttonClear.UseVisualStyleBackColor = true;
- buttonClear.Click += buttonClear_Click;
- //
// buttonEnter
//
buttonEnter.Location = new Point(272, 36);
@@ -87,34 +77,21 @@
buttonEnter.UseVisualStyleBackColor = true;
buttonEnter.Click += buttonEnter_Click;
//
- // buttonAdd
- //
- buttonAdd.Location = new Point(331, 415);
- buttonAdd.Margin = new Padding(3, 2, 3, 2);
- buttonAdd.Name = "buttonAdd";
- buttonAdd.Size = new Size(147, 23);
- buttonAdd.TabIndex = 6;
- buttonAdd.Text = "Добавить значение";
- buttonAdd.UseVisualStyleBackColor = true;
- buttonAdd.Click += buttonAdd_Click;
- //
// controlListBox
//
controlListBox.GetIndex = -1;
controlListBox.Location = new Point(12, 65);
controlListBox.Name = "controlListBox";
- controlListBox.Size = new Size(776, 344);
+ controlListBox.Size = new Size(334, 344);
controlListBox.TabIndex = 7;
//
// Form
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
- ClientSize = new Size(800, 450);
+ ClientSize = new Size(759, 450);
Controls.Add(controlListBox);
- Controls.Add(buttonAdd);
Controls.Add(buttonEnter);
- Controls.Add(buttonClear);
Controls.Add(buttonGetObj);
Controls.Add(controlTextBox);
Controls.Add(controlComboBox);
@@ -129,9 +106,8 @@
private ComponentProgramming.ControlComboBox controlComboBox;
private ComponentProgramming.ControlTextBox controlTextBox;
private Button buttonGetObj;
- private Button buttonClear;
private Button buttonEnter;
- private Button buttonAdd;
private ComponentProgramming.ControlListBox controlListBox;
+ private ComponentProgramming.Components.LargeTextComponent largeTextComponent;
}
}
diff --git a/ComponentProgramming/Forms/Form.cs b/ComponentProgramming/Forms/Form.cs
index f4f889f..f212d5e 100644
--- a/ComponentProgramming/Forms/Form.cs
+++ b/ComponentProgramming/Forms/Form.cs
@@ -8,6 +8,8 @@ namespace Forms
FillBox();
FillTextBox();
FillList();
+ string[] strings = new string[] { " , ( )", " ( ) ( )" };
+ largeTextComponent.CreateDocument("C:\\Users\\shotb\\source\\repos\\KOP\\ComponentProgramming\\Forms\\text.pdf", "", strings);
}
private void FillBox()
@@ -53,21 +55,10 @@ namespace Forms
var obj = controlListBox.GetSelectedObject();
MessageBox.Show($"{obj.Name} {obj.Surname}");
}
-
- private void buttonClear_Click(object sender, EventArgs e)
- {
- //controlDataGrid.ClearData();
- }
-
private void buttonEnter_Click(object sender, EventArgs e)
{
var val = controlTextBox.text;
MessageBox.Show($" {val}");
}
-
- private void buttonAdd_Click(object sender, EventArgs e)
- {
- //controlDataGrid.SetData(new Person(1, "asdasdas", "asdasd1asd"), 2, 3);
- }
}
}
diff --git a/ComponentProgramming/Forms/Form.resx b/ComponentProgramming/Forms/Form.resx
index af32865..d491498 100644
--- a/ComponentProgramming/Forms/Form.resx
+++ b/ComponentProgramming/Forms/Form.resx
@@ -117,4 +117,7 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 17, 17
+
\ No newline at end of file
diff --git a/ComponentProgramming/Forms/Forms.csproj b/ComponentProgramming/Forms/Forms.csproj
index 812d01e..212408f 100644
--- a/ComponentProgramming/Forms/Forms.csproj
+++ b/ComponentProgramming/Forms/Forms.csproj
@@ -8,6 +8,10 @@
enable
+
+
+
+
diff --git a/ComponentProgramming/Forms/text.pdf b/ComponentProgramming/Forms/text.pdf
new file mode 100644
index 0000000..0368d11
Binary files /dev/null and b/ComponentProgramming/Forms/text.pdf differ