Как получить доступ к объектам на форме из своего класса?
Пробовал так:
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: Как получить доступ к объектам на форме из своего класса
Здравствуйте, 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: Как получить доступ к объектам на форме из своего класса
Здравствуйте, NewSMV, Вы писали:
NSM>Понимаю, что вопрос наверное глупый, но литературы по С# у меня нет (скачать скорости не хватает), копаюсь практически методом тыка и немного с помощью MSDN... NSM>PS: кто подскажет нормального автора или книгу, буду благодарен.
У меня модем, но я скачал стандарт C# (можно с сайта iso.org или спецификации с microsoft.com). Там не так много, 1,2 мега максимум. В MSDN то же есть по C# фактически вся спецификация, надо только найти её.
Re: Как получить доступ к объектам на форме из своего класса
Здравствуйте, 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 Мб
Если каждый день узнавать что-то новое, то можно очень долго чему-нибудь учиться
Здравствуйте, 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 приложений...
Сколько страниц?
Надо поискать в инете.
Спасибо!
Если каждый день узнавать что-то новое, то можно очень долго чему-нибудь учиться
Здравствуйте, 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]: Как получить доступ к объектам на форме из своего кла
Здравствуйте, 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 переходил? а то сильно похоже...