Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Класс, и его использование 
V
    Опции темы
Franz1981
Дата 10.10.2008, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 8.10.2008

Репутация: нет
Всего: нет



взял из соседней темы класс:

Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace WindowsFormsApplication1
{

    class MyClass
    {
        Form1 parentFrm;
        public void foo()
        {
            parentFrm.pictureBox1.Height = 10 ;
            
        }
        
        public MyClass(Form1 frm)
        {
            parentFrm = frm;
        }
    }
}


и 
Код


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{      public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            MyClass c = new MyClass(this);
            
 
        }

        private void Form1_Activated(object sender, EventArgs e)
        {
           
        }

        public void hScrollBar1_ValueChanged(object sender, EventArgs e)
        {
            c.foo();
        }
    }


   
    }






не очень понятны некоторые моменты в описании методов класса, и ещё когда вот создаю экземпляр "с", он недоступен из   
Код

public void hScrollBar1_ValueChanged(object sender, EventArgs e)
        {
            c.foo();
        }

PM MAIL   Вверх
diadiavova
Дата 10.10.2008, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Покажи как ты сделал, я объясню, что не правильно.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Franz1981
Дата 10.10.2008, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 8.10.2008

Репутация: нет
Всего: нет



вобщем остался только один вопрос:

Цитата

не очень понятны некоторые моменты в описании методов класса, и ещё когда вот создаю экземпляр "с", он недоступен из  

Код

public void hScrollBar1_ValueChanged(object sender, EventArgs e)
        {
            c.foo();
        }


PM MAIL   Вверх
diadiavova
Дата 10.10.2008, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Переменную надо создавать на уровне класса, а в методе при создании экземпляра передавать его этой переменной. Доступ к объекту можно получить через переменную.

Код

public class aaa
{
    public aaa()
    {
        f = new MyForm();
    }
    MyForm f;
}

public class MyForm:Form
{}


В этом случае обратиться к полю f экземпляра aaa можно откуда угодно, а инициируется оно в конструкторе.

Это сообщение отредактировал(а) diadiavova - 10.10.2008, 12:44


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Franz1981
Дата 10.10.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 8.10.2008

Репутация: нет
Всего: нет



не понял smile  можно поподробней? smile 
PM MAIL   Вверх
mihryak
Дата 10.10.2008, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 10
Всего: 36



может книжку всё же? ;)
PM MAIL ICQ   Вверх
diadiavova
Дата 10.10.2008, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142




Вот так сделано у тебя
 
Код

  public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            MyClass c = new MyClass(this);
            
 
        }
        private void Form1_Activated(object sender, EventArgs e)
        {
           
        }
        public void hScrollBar1_ValueChanged(object sender, EventArgs e)
        {
            c.foo();
        }
    }



А вот так надо 
Код

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            c = new MyClass(this);
            
 
        }
         public MyClass c;
        private void Form1_Activated(object sender, EventArgs e)
        {
           
        }
        public void hScrollBar1_ValueChanged(object sender, EventArgs e)
        {
            c.foo();
        }
    }




Цитата(mihryak @  10.10.2008,  13:02 Найти цитируемый пост)
может книжку всё же? ;) 

Книжка - дело хорошее, и самао собой надо, только вот ведь в чём беда, если в книжке чего не понятно - никто разжёвывать не будет. А поскольку книжки пишут профессионалы, им иногда кажется тема лёгкой и не требующей дополнительных разъяснений, а новичку не понятно. Для того и существуют форумы.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Franz1981
Дата 10.10.2008, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 8.10.2008

Репутация: нет
Всего: нет



Большое спасибо, diadiavova!! smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1419 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.