Доступ к функции в другой форме - C # - PullRequest
0 голосов
/ 17 июля 2011

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

Ценю любую помощь!

Заранее спасибо!

Люк

Ответы [ 4 ]

4 голосов
/ 17 июля 2011

Почему бы не выдвинуть функциональность в свой открытый класс (например, ButtonConfigurator или что-то в этом роде). Тогда любая форма может содержать объект ButtonConfigurator и использовать его.

3 голосов
/ 17 июля 2011

Это зависит от вашей архитектуры кода:

  1. Вид грубого : если у вас есть только несколько форм Form _form1, Form2 _form2, вы можете создать вид взаимосвязи междуих, просто пример псевдокода :

    public class Form1:Form 
    {
        Form2 _form2Object = null;
    
        public Form1(Form2 frm2) 
        {
            _form2Object = frm2;
        }
    
        //and after when needed just use that _form2Object to call a mehod on it.
    }
    
  2. Более приятный : объявлен общим для всех ваших форм Dispatcher.Поэтому, когда Form1 хочет уведомить что-то о Form2, он вызывает относительный метод Dispatchers, который заботится о том, чтобы вызвать правильный метод на Form2

Могут быть и другие решенияболее или менее приятнее, но это сильно зависит от архитектуры вашего приложения.Здесь я просто изложил пару возможных вариантов.

Надеюсь, это поможет.С уважением.

0 голосов
/ 17 июля 2011

Предположим, у вас есть Form form1 с методом method1, к которому вы хотите получить доступ в Form form2.Вы можете объявить этот метод как public static.Таким образом, вы можете получить доступ к этому методу, как form1.method1.

0 голосов
/ 17 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...