правочки (сдано)

This commit is contained in:
a.puchkina 2024-09-17 11:47:53 +04:00
parent cd2b5a857b
commit 6639c7be4d
4 changed files with 63 additions and 26 deletions

View File

@ -7,11 +7,8 @@
InitializeComponent();
}
// вызывается, когда изменяется выбранное значение в CheckedListBox
public event EventHandler? SelectedValueChanged;
// Если количество отмеченных элементов больше одного, то все отмеченные
// элементы, кроме выбранного, снимаются отметки.
private void checkedListBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (checkedListBox.CheckedItems.Count > 1)
@ -27,7 +24,6 @@
SelectedValueChanged?.Invoke(this, e);
}
//Это свойство позволяет получить или установить выбранное значение в CheckedListBox
public string SelectedValue
{
get

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace COP_5.Exceptions
{
public class TreeViewException : Exception
{
public TreeViewException() { }
public TreeViewException(string message) : base(message) { }
public TreeViewException(string message, Exception inner) : base(message, inner) { }
}
}

View File

@ -5,15 +5,41 @@ namespace COP_5
{
public partial class RangeTextBox : UserControl
{
public int? MinLength { get; set; }
public int? MaxLength { get; set; }
public int? max = null;
public int? min = null;
public int? MinLength
{
get
{
return max;
}
set
{
if (value == null || value <= 0) return;
max = value;
}
}
public int? MaxLength
{
get
{
return min;
}
set
{
if (value == null || value < 0) return;
min = value;
}
}
public event EventHandler? ChangedValue;
public string? TextBoxValue
{
get
{
if (MinLength == 0 && MaxLength == 0)
if (MinLength == null && MaxLength == null)
{
throw new RangeException("Диапазон не задан.");
}
@ -25,18 +51,13 @@ namespace COP_5
}
set
{
if (MinLength != 0 && MaxLength != 0)
if (MinLength != null && MaxLength != null)
{
if (value.Length >= MinLength && value.Length <= MaxLength)
{
textBox.Text = value;
ChangedValue?.Invoke(this, EventArgs.Empty);
}
}
else
{
throw new RangeException("Диапазон не задан.");
}
}
}
@ -46,21 +67,18 @@ namespace COP_5
}
private void textBox_TextChanged(object sender, EventArgs e)
{
if (MinLength != 0 && MaxLength != 0)
ChangedValue?.Invoke(this, e);
if (MinLength != null && MaxLength != null)
{
if (textBox.Text.Length < MinLength || textBox.Text.Length > MaxLength)
{
MessageBox.Show("Текст находится в недопустимом диапазоне!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Information);
textBox.ForeColor = System.Drawing.Color.Red;
}
else
{
ChangedValue?.Invoke(this, e);
textBox.ForeColor = System.Drawing.Color.Black;
}
}
else
{
throw new RangeException("Диапазон не задан.");
}
}
}
}

View File

@ -1,4 +1,5 @@
using COP_5.TestClasses;
using COP_5.Exceptions;
using COP_5.TestClasses;
namespace COP_5
{
@ -18,8 +19,12 @@ namespace COP_5
this.hierarchy = hierarchy;
this.newBranch = newBranch;
}
public void Clear()
{
treeView1.Nodes.Clear();
}
public void AddObjectToTree(object obj, string stopAtProperty)
public void AddObjectToTree<T>(T obj, string stopAtProperty)
{
TreeNode currentNode = treeView1.Nodes.Cast<TreeNode>().FirstOrDefault();
foreach (var property in hierarchy)
@ -63,16 +68,19 @@ namespace COP_5
}
}
public object GetSelectedObject()
public T GetSelectedObject<T>() where T : new()
{
if (treeView1.SelectedNode == null)
{
return null;
throw new TreeViewException("Узел равен null");
}
if (treeView1.SelectedNode.Nodes.Count > 0)
{
throw new TreeViewException("Невозможно получить объект из этого узла");
}
var node = treeView1.SelectedNode;
// Создается новый экземпляр объекта типа Employee
var obj = Activator.CreateInstance(typeof(Employee));
var obj = new T();
foreach (var property in hierarchy)
{
// получаем значение узла