2016-07-24 5 views
0

Я использую Visual Studios для создания приложения формы Windows. Моя система отвечает за создание и просмотр информации о модуле для университетов. Однако в настоящее время, хотя, когда моя система загружается, она заполняет меню инструментальной панели. Мне нужен способ добавления новых элементов в этот список при их создании. Новые записи создаются в другой форме, и я не могу понять, как добавлять элементы к этому ToolStripDropdown в Форме 1 из создания одного из Form2 (см. Ниже, как это выглядит). Я попытался просто сделать ToolStripMenuItem просто общедоступным, но это не сработает. Может кто-нибудь мне помочь?Добавление элемента в раскрывающийся список ToolStripMenuItem из другой формы

The ToolStrip as present of ToolStrip1

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 = newmodcode; 

       Form1.modulesToolStripMenuItem.DropDownItems.Add(newDropDownItem); 
  Close(); 
     } 

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

Вы должны иметь ссылку для первой формы во второй форме. Например: http://stackoverflow.com/a/38460510/3185569 – user3185569

ответ

0

Я ответил здесь (https://stackoverflow.com/a/32916403/5378924), как добавить некоторые элементы управления из одного формы к другому.

Form1:

public partial class Form1 : Form 
{ 
    public static Form1 Instance { get; private set; } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
      Instance = this; 
    } 
} 

Form2:

ToolStripItem newDropDownItem = new ToolStripMenuItem(); 
newDropDownItem.Text = newmodcode; 
Form1.Instance.modulesToolStripMenuItem.DropDownItems.Add(newDropDownItem); 
+0

Таким образом, после открытия следующего экземпляра 'Form1', свойство' Instance' будет указывать на новую форму. –

+0

Взгляните на [эти параметры] (http://stackoverflow.com/a/38552832/3110834), вы найдете их полезными :) –

+0

@RezaAghaei Я думаю, что Form1 остается навсегда, пока пользователь не закрывает приложение. Form1 является отправной точкой приложения, и он открывается и закрывается только один раз. –

 Смежные вопросы

  • Нет связанных вопросов^_^