Делаю программку, наверно правильно Parser называется.
Собирает различные данные с сайта, производит вычисления, формирует стек данных и выдаёт в TextBox.
В TextBox, не совсем удобно читается и хочется как то сделать всё удобнее.
Вот как можно, такие стеки данных , выдавать примерно так ?
В идеале, если какие то стеки мне не нравятся , то удалять/скрывать по кнопке и их место заполнит предыдущий.
С textBox это выглядит так.
Элементарно:
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
TableLayoutPanel tableLayoutPanel;
public Form1()
{
//InitializeComponent();
tableLayoutPanel = new TableLayoutPanel { Parent = this, Dock = DockStyle.Fill, ColumnCount = 3 };
for (int i = 0; i < 10; i++)
{
var panel = new MyPanel
{
BorderStyle = BorderStyle.FixedSingle,
Title = "Title" + i,
Content = "Text" + i
};
tableLayoutPanel.Controls.Add(panel);
}
tableLayoutPanel.Click += TableLayoutPanel_Click;
}
private void TableLayoutPanel_Click(object sender, EventArgs e)
{
var panel = new MyPanel { Title = "Added", Content = "Some content" };
tableLayoutPanel.Controls.Add(panel); // добавляем в конец
tableLayoutPanel.Controls.SetChildIndex(panel, 0); // переносим в начало
}
}
public class MyPanel : Panel
{
private Panel topPanel;
private Button closeButton;
private Label titleLabel;
private TextBox contentTextBox;
public MyPanel()
{
contentTextBox = new TextBox { Parent = this, Dock = DockStyle.Fill, Multiline = true };
topPanel = new Panel { Parent = this, Dock = DockStyle.Top, Height = 20 };
closeButton = new Button { Parent = topPanel, Text = "\u274C", Dock = DockStyle.Right, Width = 20, BackColor = Color.Red, FlatStyle = FlatStyle.Popup };
titleLabel = new Label { Parent = topPanel, BackColor = Color.Green, Dock = DockStyle.Fill };
closeButton.Click += CloseButton_Click;
}
private void CloseButton_Click(object sender, EventArgs e)
{
this.Parent?.Controls.Remove(this);
}
public string Title { get => titleLabel.Text; set => titleLabel.Text = value; }
public string Content { get => contentTextBox.Text; set => contentTextBox.Text = value; }
}
}
Вместо TableLayoutPanel
можно использовать FlowLayoutPanel
.
Классу MyPanel
(то, что вы называете "стек", хотя стек - это контейнер для данных, а не одна запись, по идее) можно наваять любой внешний вид.
При старте приложения создаются и добавляются 10 кастомных панелей. Их можно удалять кликом на крестик.
Добавлять новые панели можно кликом на сам TableLayoutPanel
(сделано для простоты).
Не могу понять как запустить Ninject в Api Controller при добавлении его в MVC проект
Здравствуйте, делаю лабораторную работу и никак не могу разобраться как получить вменяемый хэш-образВ общем суть задачи состоит в 1
tabControl, подскажите пожалуйста как изменить цвет именно самой вкладки (когда она еще не "нажата")