Во-первых, я настоящий новичок в c #, поэтому, пожалуйста, не отвечайте на вопросы экспертов, будьте проще, даже если это более длинный вариант, чем должен быть, спасибо!
Я написал небольшую программу, которая может добавлять в форму так называемые «Заметки» во время выполнения.
Примечание - это класс, который содержит две кнопки (удалить, сохранить) и текстовое поле.Другой класс, MyNotes, имеет метод, который добавляет новые заметки в форму до макс.4.
Пока все работает отлично.
Теперь проблема: я хотел бы удалить конкретную заметку, для которой пользователь нажимает кнопку удаления (поэтому две кнопки и текстовое поле должны быть удалены из формы, но (если есть) другие заметкидолжно остаться нетронутым.
Я уже запрограммировал метод удаления, но проблема в том, что «отправитель объекта» в «remove_Click» действительно доставляет кнопку удаления, но информация о заметке отсутствует, он является частьюили других элементов его Заметки (кнопка «Сохранить», текстовое поле). Я понимаю, почему, но не знаю, как решить проблему.
Как я могу сказать ему, из какой Заметки ончасть?
РЕДАКТИРОВАТЬ: save_Click и button1_Click не являются частью этого, они имеют другие функции, не относящиеся к этому.
EDIT2: Это изображение программы. 4 текстовых поля, кнопки сохраненияи кнопки «X» в верхней части были добавлены «ADD». Проблема состоит в том, чтобы удалить один «Набор нот», нажав «X» в одном из 4 случаев.: - /
Нажмите, чтобы увидеть изображение моего рrogram
Форма:
using System;
using System.Windows;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TextboxTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
richTextBox1.BorderStyle = BorderStyle.None;
}
private void load_Click(object sender, EventArgs e)
{
Note note = MyNotes.AddNote();
if (note != null)
{
this.Controls.Add(note.GetBox());
this.Controls.Add(note.GetRemoveButton());
this.Controls.Add(note.GetSaveButton());
note.GetRemoveButton().Click += new EventHandler(remove_Click);
}
richTextBox1.Text = MyNotes.SetNote();
}
private void remove_Click(object sender, EventArgs e)
{
Note note = sender as Note;
Controls.Remove(note.GetBox());
Controls.Remove(note.GetSaveButton());
Controls.Remove(note.GetRemoveButton());
}
private void save_Click(object sender, EventArgs e)
{
String savePath = Properties.Settings.Default.datapath;
System.IO.File.WriteAllText(savePath, richTextBox1.Text);
}
private void button1_Click(object sender, EventArgs e)
{
Form2 settings = new Form2();
settings.Show();
MessageBox.Show("Selected Item Text: " + Properties.Settings.Default.textboxFont + "\n");
}
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Text = MyNotes.SetNote();
}
}
}
Класс MyNotes:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TextboxTest
{
class MyNotes
{
public static List<Note> noteList = new List<Note>();
public static String path = Properties.Settings.Default.datapath;
private static int y = 50;
// Adds a new textbox, save- and remove-Button to the form (and the textBoxList)
// up to a maximum of 4 each.
public static Note AddNote()
{
if (noteList.Count < 4)
{
Note note = new Note();
note.GetBox().Location = new Point(100, y);
note.GetRemoveButton().Location = new Point(15, y-2);
note.GetSaveButton().Location = new Point(40, y - 2);
y += 22;
noteList.Add(note);
return note;
}
else
{
MessageBox.Show("It's only possible to set a maximum of 4 notes. Please delete or rewrite another one.");
return null;
}
}
public static String SetNote()
{
return System.IO.File.ReadAllText(path);
}
}
}
Класс Примечания:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TextboxTest
{
class Note
{
private TextBox box;
private Button remove;
private Button save;
public Note()
{
boxSettings();
removeSettings();
saveSettings();
}
private void boxSettings()
{
box = new TextBox();
box.Width = 250;
box.BackColor = System.Drawing.Color.DarkGray;
}
private void removeSettings()
{
remove = new Button();
remove.Text = "X";
remove.TextAlign = ContentAlignment.MiddleCenter;
remove.Width = 20;
}
private void saveSettings()
{
save = new Button();
save.Text = "SAVE";
save.TextAlign = ContentAlignment.MiddleCenter;
save.Width = 50;
}
public TextBox GetBox()
{
return this.box;
}
public Button GetRemoveButton()
{
return this.remove;
}
public Button GetSaveButton()
{
return this.save;
}
}
}