0

我正在创建一个模块化的笔记系统,我需要一种方法来在主窗体的下拉菜单中创建一个新项目,同时还为这个新项目创建一个事件处理程序。我已经创建了一个初始化激活处理程序,但我需要能够从另一个表单调用它。我已经包含了这两种表单的代码,并引用了 Form1 中特别相关的代码。

因此,我需要能够在 Form1 上的下拉菜单中添加一个新项目,然后让系统创建一个新的事件处理程序来处理是否单击了这个新项目。

如果需要表格的图像,请告诉我。希望有人能够提供帮助。

表格1(主表格)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace Mod_Note_2._0
{
    public partial class Form1 : Form
    {
        //Defines variables 

        public static string moduleCod;
        public static string[] codRetr = Directory.GetFiles(".", "*code.txt");
        public static List<string> notes;
        public static int i = 0;
        public static string a = "a";
        public static List<string> codDrop;
        public static string codDropT;
        public string notePath;
        public string noteLoad = Path.GetFullPath("noteLoad.txt");
        public string notePathFind;

        public static string modNoLocation;
        public static string modNo;
        public static string modTitle;
        public static string modTitleLocation;
        public static string modSynopsis;
        public static string modSynLocation;
        public static string modLOs;
        public static string modLOsLocation;
        public static string modAssign;
        public static string modAssignLoc;
        public static string notesLoc;

        public static string cod;

        public Form1()
        {
            InitializeComponent();
            **List<string> codDrop = new List<string>();
            //codDrop.Clear();
            i = 0;

            foreach (string s in codRetr)
            {
                codRetr[i] = codRetr[i].Remove(codRetr[i].Length - 8);
                cod = codRetr[i].Remove(0, 2);
                codDrop.Add(cod);

                i++;
            }

            i = 0;

            foreach (string t in codDrop)
            {
                ToolStripItem newDropDownItem = new ToolStripMenuItem();
                newDropDownItem.Text = t;
                newDropDownItem.Click += new EventHandler(moduleChoice_Click);

                modulesToolStripMenuItem.DropDownItems.Add(newDropDownItem);          

            }**
        }

        private void moduleChoice_Click(object sender, System.EventArgs e)
        {
            ToolStripItem menuItemThatHasBeenClicked = (ToolStripItem)sender;

            listBox1.Items.Clear();

            moduleCod = menuItemThatHasBeenClicked.Text;

            notesLoc = "*" + moduleCod + "N.txt";

            modNoLocation = moduleCod + "code.txt";
            modNo = File.ReadAllText(modNoLocation);
            ModuleCode.Text = modNo;

            modTitleLocation = moduleCod + "title.txt";
            modTitle = File.ReadAllText(modTitleLocation);
            Title.Text = modTitle;

            modSynLocation = moduleCod + "synopsis.txt";
            modSynopsis = File.ReadAllText(modSynLocation);
            ModuleSummary.Text = modSynopsis;


            modLOsLocation = moduleCod + "LOs.txt";
            modLOs = File.ReadAllText(modLOsLocation);
            LOsTextbox.Text = modLOs;

            modAssignLoc = moduleCod + "assignments.txt";
            modAssign = File.ReadAllText(modAssignLoc);
            AssignBox.Text = modAssign;

            string absolutePath = Path.GetFullPath(@"./");
            string[] noteFiles = Directory.GetFiles(".", notesLoc);
            //List<string> noteFilesList = new List<string>();

            foreach(string s in noteFiles)
            {
                listBox1.Items.Add(s);
                listBox1.Click += new EventHandler(noteChoice_Click);
            }

            //listBox1.Items.Clear();

            //listBox1.DataSource = noteFilesList;
        }

        private void noteChoice_Click(object sender, EventArgs e)
        {

        }

        private void programmingAndDataStructureToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }


        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {
            modLOs = LOsTextbox.Text;
            File.WriteAllText(modLOsLocation, modLOs);
        }

        private void ModuleSummary_TextChanged(object sender, EventArgs e)
        {
            modSynopsis = ModuleSummary.Text;
            File.WriteAllText(modSynLocation, modSynopsis);
        }

        private void AssignBox_TextChanged(object sender, EventArgs e)
        {
            modAssign = AssignBox.Text;
            File.WriteAllText(modAssignLoc, modAssign);
        }

        private void modulesToolStripMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {


;

        }

        private void modulesToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }



        private void modulesToolStripMenuItem_DropDownOpened_1(object sender, EventArgs e)
        {
        }

        private void modulesToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
        {

        }



        private void button1_Click(object sender, EventArgs e)
        {
            Form3 form3 = new Form3();
            form3.Show();
        }

        private void Title_TextChanged(object sender, EventArgs e)
        {
            modTitle = Title.Text;
            File.WriteAllText(modTitleLocation, modTitle);
        }

        private void AddNewModule_Click_1(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            form2.Show();
        }

        //Manages deleting of modules
        private void deleteCurrentModuleToolStripMenuItem_Click_1(object sender, EventArgs e)
        {
            DialogResult dr = MessageBox.Show("Are you sure you want to delete this module?", "", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);

            if (dr == DialogResult.Yes)
            {
                File.Delete(modNoLocation);
                File.Delete(modTitleLocation);
                File.Delete(modSynLocation);
                File.Delete(modLOsLocation);
                File.Delete(modAssignLoc);

                moduleCod = "";
                Title.Text = "";
                LOsTextbox.Text = "";
                ModuleCode.Text = "";
                ModuleSummary.Text = "";
                AssignBox.Text = "";


            }
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            Form3 form3 = new Form3();
            form3.Show();
        }
    }
}

表格 2(添加新模块表格)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace Mod_Note_2._0
{
    public partial class Form2 : Form
    {
        public string newmodcode;
        public string baseText = "Enter information related to the module section here";

        public string newmodtitle;
        public string newmodsyn;
        public string newmodlo;
        public string newmodassign;

        public Form2()
        {
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            newmodcode = NewModuleCode.Text;

            //Adds the file path and name to the module code to create the file names
            newmodtitle = newmodcode + "title.txt";
            newmodsyn = newmodcode + "synopsis.txt";
            newmodlo = newmodcode + "LOs.txt";
            newmodassign = newmodcode + "assignments.txt";

            //Adds the file path the new module code so it can create the file
            string newmodcodepath = newmodcode + "code.txt";

            //Creates the new files with the filler text as default
            File.WriteAllText(newmodcodepath, newmodcode);
            File.WriteAllText(newmodtitle, baseText);
            File.WriteAllText(newmodsyn, baseText);
            File.WriteAllText(newmodlo, baseText);
            File.WriteAllText(newmodassign, baseText);

            ToolStripItem newDropDownItem = new ToolStripMenuItem();
            newDropDownItem.Text = t;
            newDropDownItem.Click += new EventHandler(Form1.moduleChoice_Click);

            Form1 modulesToolStripMenuItem.DropDownItems.Add(newDropDownItem);

            Close();
        }

        //Simple cancelation sequence closing the entry form
        private void button2_Click(object sender, EventArgs e)
        {
            Close();
        }
    }
}
4

0 回答 0