1 / 1 / 2
Регистрация: 18.03.2012
Сообщений: 253
1

Вызов метода в классе формы из класса другого проекта

08.04.2015, 10:53. Показов 1684. Ответов 2
Метки нет (Все метки)

Есть проект Project1 и Project2 - оба ClassLibrary. В Project1 происходит вызов форми из Project2 (Project2 добавлен в References Project1), но в Project1 есть класс с методами которые мне нужно использовать в форме проекта Project2. Я естественно добавить Project1 в References Project2 не могу .... создать еще один проект не вариант нужно все в одном ввместить. Кто подскажет как выйти из ситуации, или поможет ссилками где что-то подобное описано.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2015, 10:53
Ответы с готовыми решениями:

Вызов метода в классе из другого
Не получается выполнить следующую цепочку действий. Запускаю метод в классе B через main, он...

Вызов методов классов друг у друга (вызов метода из другого класса)
Есть несколько классов, которые могут вызывать методы (функции) друг у друга. Логика: класс1 имеет...

Вызов метода из другого файла проекта
В проекте есть два файла: Parser.cs и Form1.cs. Текст первого такой namespace Parser { ...

Что-то я не понимаю.Вызов метода одного класса из другого класса
Есть два класса первый содержит атрибуты объекта описывающие кнопку: имя, позиция, размер и тд... А...

2
-1 / 0 / 10
Регистрация: 05.04.2015
Сообщений: 80
08.04.2015, 13:32 2
Лучший ответ Сообщение было отмечено galaxyblazer как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class Person
{
    // Field
    public string name;
 
    // Constructor that takes no arguments.
    public Person()
    {
        name = "unknown";
    }
 
    // Constructor that takes one argument.
    public Person(string nm)
    {
        name = nm;
    }
 
    // Method
    public void SetName(string newName)
    {
        name = newName;
    }
}
class TestPerson
{
    static void Main()
    {
        // Call the constructor that has no parameters.
        Person person1 = new Person();
        Console.WriteLine(person1.name);
 
        person1.SetName("John Smith");
        Console.WriteLine(person1.name);
 
        // Call the constructor that has one parameter.
        Person person2 = new Person("Sarah Jones");
        Console.WriteLine(person2.name);
 
        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
// Output:
// unknown
// John Smith
// Sarah Jones
0
1 / 1 / 2
Регистрация: 18.03.2012
Сообщений: 253
08.04.2015, 17:29  [ТС] 3
У меня эти классы в двух разных проектах (проекты в одном солюшене) Проще говоря мой класс TestPerson не знает о существовании класса Person

Добавлено через 3 часа 40 минут
Вот то как я пытался сделать: У меня есть проект типа ClassLibrary под названием ClassLibraryFirstPalette и есть проект типа ClassLibrary UImethods.
В UImethods генерируется панелька для автокада с одной кнопкой .
ClassLibraryFirstPalette - это дллка которую подгружает в себя автокад и запускает. Она вызывает UImethods метод создания панельки и как только запускается автокад панелька появляется, с этим проблем нет.
Но нажатие кнопки на панельку должно вызывать метод из ClassLibraryFirstPalette, что не происходит и появляется ошибка : Object reference not set an instance of an object
Дальше привожу код:
код интерфейса:
C#
1
2
3
4
5
6
7
namespace UImethods
{
   public interface ICommands
    {
        void SetCommands(Control1 commands);
        void NewDrawing();///метод который я хочу вызывать из ClassLibraryFirstPalette
    }
Класс Commands проекта ClassLibraryFirstPalette в котором находится метод void NewDrawing()
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 public class Commands: ICommands
    {
        UImethods.Control1 _palette;
        public void SetCommands(Control1 palette)
        {
            _palette = palette;
 
        }
     
        [CommandMethod("NewDrawing", CommandFlags.Session)]
        public void NewDrawing()
        {
            string strTemplatepath = "acad.dwt";
            DocumentCollection acDocMgr = Application.DocumentManager;
            Document acDoc = acDocMgr.Add(strTemplatepath);
            acDocMgr.MdiActiveDocument = acDoc;
        }
Код UserControl в котором кнопка которая вызывает void NewDrawing()
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 ICommands _commands;
 
          public Control1(ICommands commands)
          {
              _commands = commands;
              commands.SetCommands(this);
          }
        private void button1_Click(object sender, EventArgs e)
        {
           // Comands.CommandsClass.NewDrawing();
            _commands.NewDrawing();
            
            
        }
Добавлено через 1 минуту
UImethods добавлен в референс ClassLibraryFirstPalette
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2015, 17:29

Вызов метода одного класса внутри другого класса
PHP передача метода, с класса, в другой класс Столкнулся с проблемой не могу передать метод или...

Делегаты или вызов метода класса из другого класса
Добрый день! В попытке изучения c# наткнулся на такую проблему: 1. Зачем нужен делегат? Ведь я...

Вызов метода одного класса в другом классе
Привет всем Когда запускаю, то в методе GetOut() вместо имени человека выводится цифра 1...

Вызов статического метода класса в другом классе
Как вызвать статический метод из одного класса в другом? вот этот код не работает class A{...

Вызов метода из другого класса
Не получается вызвать метод из другого класса. Не ругайте, новичок. При запущенном приложении после...

Вызов метода из другого класса
Добрый день! Приложение спроектировано для почтовой службы и нужно рассчитать количество дней на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.