JKwaaan Ответов: 1

Как открыть новую форму со спецификациями на основе кнопки, нажатой на родительской форме?


Извините, если вопрос немного сбился, все еще новичок в программировании. Кажется, я не могу описать это в 1 вопросе.

Я пытаюсь упростить свою программу, просто используя 1 форму для 3 функций (добавление, редактирование, просмотр). Теперь с этими 3 функциями единственная разница заключается в том, что в них отключены текстовые поля Edit и View.

У меня возникли проблемы с усвоением того, как я должен подойти к этому вопросу. Я использую combobox в качестве меню. Я указал кнопки для открытия определенных форм в зависимости от того, в каком меню они находятся.

Мой план состоял в том, чтобы поместить значение переменной в родительскую форму при нажатии кнопки и вызвать ее в дочерней форме в качестве основы, Если поля должны быть включены или нет. Но, кажется, я не могу вызвать его из родительской формы.

Что я уже пробовал:

Попробовал вызвать переменную из родительской формы, но, похоже, не может ее вызвать.

BillWoodruff

Я в замешательстве: вы говорите, что вы: "использование 1 формы для 3 функций" ... затем вы говорите о создании других форм.

Пожалуйста, уточните дизайн вашего приложения.

1 Ответов

Рейтинг:
0

OriginalGriff

Это совсем не сложно, правда!
Создайте перечисление в Form2:

public enum FormFunction
    {
    Add,
    Edit,
    View
    }
Затем измените конструктор Form2, чтобы принять экземпляр перечисления:
public Form2(FormFunction function)
    {
    InitializeComponent();
    switch (function)
        {
        case FormFunction.Add:
            ...
            break;
        case FormFunction.Edit:
            ...
            break;
        case FormFunction.View:
            ...
            break;
        default: throw new ArgumentOutOfRangeException("Unknown FormFunction: " + function);
        }
    }
И построить его с помощью нового конструктора:
Form2 f = new Form2(Form2.FormFunction.Edit);
Затем вы можете изменить состояние и видимость элементов управления по мере необходимости.