Как получить доступ к объектам на форме из своего класса?
От: NewSMV  
Дата: 05.09.06 16:56
Оценка:
Как получить доступ к объектам на форме из своего класса?
Пробовал так:
public static myclass Forma = new myclass();
(...)
class myclass 
{ 
public Form1 Form1=null; 
} 

public class Prov
{
Forma.Form1.button1.Text="123";
}

Компилятор ругается:
Invalid token '=' in class, struct, or interface member declaration

Понимаю, что вопрос наверное глупый, но литературы по С# у меня нет (скачать скорости не хватает), копаюсь практически методом тыка и немного с помощью MSDN...
PS: кто подскажет нормального автора или книгу, буду благодарен.
Re: Как получить доступ к объектам на форме из своего класса
От: nomicon Россия  
Дата: 05.09.06 17:18
Оценка:
Здравствуйте, NewSMV, Вы писали:

NSM>Как получить доступ к объектам на форме из своего класса?

NSM>Пробовал так:
NSM>
NSM>public static myclass Forma = new myclass();
NSM>(...)
NSM>class myclass 
NSM>{ 
NSM>public Form1 Form1=null; 
NSM>} 

NSM>public class Prov
NSM>{
NSM>Forma.Form1.button1.Text="123";
NSM>}
NSM>

NSM>Компилятор ругается:
NSM>Invalid token '=' in class, struct, or interface member declaration

NSM>Понимаю, что вопрос наверное глупый, но литературы по С# у меня нет (скачать скорости не хватает), копаюсь практически методом тыка и немного с помощью MSDN...

NSM>PS: кто подскажет нормального автора или книгу, буду благодарен.

А что ты собственно что хочешь сделать? ошибка вылетает из-за того, что данное присваивание надо делать в каком-нибудь методе класса а не просто в классе. Сделай например в конструкторе:
        public class Prov
        {
            public Prov()
            {
                Forma.Form1.button1.Text="123";
            }
        }
Re: Как получить доступ к объектам на форме из своего класса
От: FDSC Россия consp11.github.io блог
Дата: 05.09.06 18:01
Оценка:
Здравствуйте, NewSMV, Вы писали:

NSM>Понимаю, что вопрос наверное глупый, но литературы по С# у меня нет (скачать скорости не хватает), копаюсь практически методом тыка и немного с помощью MSDN...

NSM>PS: кто подскажет нормального автора или книгу, буду благодарен.

У меня модем, но я скачал стандарт C# (можно с сайта iso.org или спецификации с microsoft.com). Там не так много, 1,2 мега максимум. В MSDN то же есть по C# фактически вся спецификация, надо только найти её.
Re: Как получить доступ к объектам на форме из своего класса
От: Аноним  
Дата: 05.09.06 20:28
Оценка:
из книг Рихтера стоит почитать


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[2]: Как получить доступ к объектам на форме из своего кла
От: NewSMV  
Дата: 06.09.06 03:14
Оценка:
Здравствуйте, nomicon, Вы писали:

N>А что ты собственно что хочешь сделать? ошибка вылетает из-за того, что данное присваивание надо делать в каком-нибудь методе класса а не просто в классе. Сделай например в конструкторе:

N>
N>        public class Prov
N>        {
N>            public Prov()
N>            {
N>                Forma.Form1.button1.Text="123";
N>            }
N>        }
N>


У меня после некоторых вычислений в классе, изменяются свойства меню, передавать изменения как параметры муторно, гораздо удобнее изменить всё прямо из класса.
Совет приял, но при попытке изменить значение, приложение виснет...
Re: Как получить доступ к объектам на форме из своего класса
От: Аноним  
Дата: 06.09.06 05:34
Оценка:
Стандарт C#1.2 и C#2.0 можно найти

c:\Program Files\Microsoft Visual Studio 8\VC#\Specifications\1033\C# Language Specification 1.2.doc

c:\Program Files\Microsoft Visual Studio 8\VC#\Specifications\1033\C# Language Specification 2.0.doc

Говорят, что ECMA-334 лучше, поскольку однозначнее определяет некоторые понятия. Весит 2.8 Мб
Если каждый день узнавать что-то новое, то можно очень долго чему-нибудь учиться


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[3]: Как получить доступ к объектам на форме из своего кла
От: nomicon Россия  
Дата: 06.09.06 15:25
Оценка:
Здравствуйте, NewSMV, Вы писали:

NSM>Здравствуйте, nomicon, Вы писали:


N>>А что ты собственно что хочешь сделать? ошибка вылетает из-за того, что данное присваивание надо делать в каком-нибудь методе класса а не просто в классе. Сделай например в конструкторе:

N>>
N>>        public class Prov
N>>        {
N>>            public Prov()
N>>            {
N>>                Forma.Form1.button1.Text="123";
N>>            }
N>>        }
N>>


NSM>У меня после некоторых вычислений в классе, изменяются свойства меню, передавать изменения как параметры муторно, гораздо удобнее изменить всё прямо из класса.

NSM>Совет приял, но при попытке изменить значение, приложение виснет...

Виснет не из-за вызова метода формы из "внешнего" класса, сам часто пользуюсь такими вещами, а из-за чего-то другого. Так что код в студию. Тогда и можно говорить что виснет.
Re: Как получить доступ к объектам на форме из своего класса
От: Аноним  
Дата: 06.09.06 16:13
Оценка:
Здравствуйте, NewSMV, Вы писали:

NSM>Понимаю, что вопрос наверное глупый, но литературы по С# у меня нет (скачать скорости не хватает), копаюсь практически методом тыка и немного с помощью MSDN...

NSM>PS: кто подскажет нормального автора или книгу, буду благодарен.

Хочу подсказать мегарулеzzzную книгу по C#. Это — лучшее что я видел по C# и по .NET вообще.

Название: Visual C# .NET, полное руководство
Оригинальное название: Mastering Visual C# .NET
Издательство: Sybex
Автор 1: Джейсон Прайс (Jason Price)
Автор 2: Майк Гандерлой (Mike Gunderloy)
Язык: русский
Год: 2002
Re: Как получить доступ к объектам на форме из своего класса
От: Аноним  
Дата: 06.09.06 19:12
Оценка:
Ухх! А можно кратенько про что там рассказывается?
Особенности языка, платформы, работы с данными, написание Windows или Web приложений...
Сколько страниц?
Надо поискать в инете.
Спасибо!
Если каждый день узнавать что-то новое, то можно очень долго чему-нибудь учиться


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Как получить доступ к объектам на форме из своего класса
От: Аноним  
Дата: 06.09.06 19:36
Оценка:
Только не бейте за ссылку!
Это книги — скачать их тоже денег стоит, поэтому вполне легально так сказать
Пользуйтесь!
http://zipsites.ru/?n=15/10/3/&s=1&show=2
Если каждый день узнавать что-то новое, то можно очень долго чему-нибудь учиться


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Как получить доступ к объектам на форме из своего класса
От: Аноним  
Дата: 06.09.06 22:12
Оценка:
http://www.codeguru.com/csharp/csharp/cs_syntax/article.php/c5851/

p.s. Люди, ищите в интернете


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[4]: Как получить доступ к объектам на форме из своего кла
От: NewSMV  
Дата: 07.09.06 09:02
Оценка:
Здравствуйте, nomicon, Вы писали:

N>Виснет не из-за вызова метода формы из "внешнего" класса, сам часто пользуюсь такими вещами, а из-за чего-то другого. Так что код в студию. Тогда и можно говорить что виснет.


Весь код слишком здоровый, вот код примера с той-же проблемой...

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace Proverka
{
    public class Form1 : System.Windows.Forms.Form
    {
        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.Label label1;
        public static myclass Forma = new myclass();
        public Prov ProvClass = new Prov();

        private System.ComponentModel.Container components = null;

        public Form1()
        {
            InitializeComponent();
        }

        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if (components != null) 
                {
                    components.Dispose();
                }
            }
            base.Dispose( disposing );
        }

        [Windows Form Designer generated code]

        public class myclass
        {
            public Form1 Form1=null;
        }

        public class Prov
        {
            public void Deistvie()
            {
                Forma.Form1.label1.Text="Text";
            }
        }

        [STAThread]
        static void Main() 
        {
            Application.Run(new Form1());
        }

        private void button1_Click(object sender, System.EventArgs e)
        {
            ProvClass.Deistvie();
        }
    }
}


А это ошибка:
An unhandled exception of type 'System.NullReferenceException' occurred in Proverka.exe
Additional information: Object reference not set to an instance of an object.
Re[5]: Как получить доступ к объектам на форме из своего кла
От: nomicon Россия  
Дата: 13.09.06 14:27
Оценка:
Здравствуйте, NewSMV, Вы писали:

NSM>Здравствуйте, nomicon, Вы писали:


N>>Виснет не из-за вызова метода формы из "внешнего" класса, сам часто пользуюсь такими вещами, а из-за чего-то другого. Так что код в студию. Тогда и можно говорить что виснет.


NSM>Весь код слишком здоровый, вот код примера с той-же проблемой...


NSM>
NSM>using System;
NSM>using System.Drawing;
NSM>using System.Collections;
NSM>using System.ComponentModel;
NSM>using System.Windows.Forms;
NSM>using System.Data;

NSM>namespace Proverka
NSM>{
NSM>    public class Form1 : System.Windows.Forms.Form
NSM>    {
NSM>        private System.Windows.Forms.Button button1;
            public System.Windows.Forms.Label label1; // Попробуй так
NSM>        public static myclass Forma = new myclass();
NSM>        public Prov ProvClass = new Prov(this);

NSM>        private System.ComponentModel.Container components = null;

NSM>        public Form1()
NSM>        {
NSM>            InitializeComponent();
NSM>        }

NSM>        protected override void Dispose( bool disposing )
NSM>        {
NSM>            if( disposing )
NSM>            {
NSM>                if (components != null) 
NSM>                {
NSM>                    components.Dispose();
NSM>                }
NSM>            }
NSM>            base.Dispose( disposing );
NSM>        }

NSM>        [Windows Form Designer generated code]

NSM>        public class myclass
NSM>        {
NSM>            public Form1 Form1=null;
NSM>        }


        public class Prov
        {
            private Form1 mForm1;
            public Prov(Form1 form1)
            {
                mForm1=form1;
            }
            public void Deistvie()
            {
                mForm1.label1.Text="Text";                
            }
        }    


        [STAThread]
NSM>        static void Main() 
NSM>        {
NSM>            Application.Run(new Form1());
NSM>        }

NSM>        private void button1_Click(object sender, System.EventArgs e)
NSM>        {
NSM>            ProvClass.Deistvie();
NSM>        }
NSM>    }
NSM>}

Кстати на .NET не с Delphi/Builder переходил? а то сильно похоже...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.