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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хочу создать свой TreeView, на основе стандартного. Как сделать? 
:(
    Опции темы
lankin
Дата 26.11.2008, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В общем сабж. Точнее, ч хочу просто взять TreeView стандартный и добавить в него своих методов несколько. 
Мне для этого нужно создавать Component.cs или какой-то иной?
PM MAIL   Вверх
QryStaL
Дата 26.11.2008, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


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

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



lankin, унаследовать cвой класс NewTreeView от стандартного.


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
lankin
Дата 26.11.2008, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Это понятно. Вопрос в другом: можно же это сделать путем создания обычного пустого класса, путем создания компонента или путем создания формы? То есть я могу использовать на свое усмотрение любой из этих способов? Или всетаки для таких целей есть свой специализированнй класс исходный?
PM MAIL   Вверх
Partizan
Дата 26.11.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



lankin, если нужно добавить/переопределить несколько методов, то лучшее решение - написать наследника.

Код

public class MyCustomTreeView : TreeView
{
      ...
}



--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
nagg
Дата 26.11.2008, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Посмотри рефлектором сурс TreeView  smile 
и ты увидешь использование\переопределение методов базового Control со смесью использования WinAPI 
--------------------
I am the State...
PM MAIL WWW ICQ Skype   Вверх
lankin
Дата 26.11.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Все сделал, вопрос был несколько в другом правда. 
Спасибо.
PM MAIL   Вверх
lankin
Дата 26.11.2008, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Еще вопрос: как мне сделать так, чтобы его можно было бросить на форму и он отобразился в виде TreeView? А то он внизк появляется, в дизайнере, а на форме пусто.

Добавлено через 2 минуты и 12 секунд
А! Сделал. Я создавал его не как просто пустой класс, а как Component.cs. Поэтому он унаследовался от Component.
Я заменил Component на TreeView и он оказался на форме. Это правильно?

был
Код

public partial class Navigator : Component

 
стал
Код

public partial class Navigator : TreeView


Добавлено через 3 минуты и 47 секунд
Но все Nodes, которые в дереве не отображает...ниче не пойму, блин....
PM MAIL   Вверх
Partizan
Дата 26.11.2008, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



lankin, показывайте весь код...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
lankin
Дата 27.11.2008, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Например я создал такой класс и создал в нем метод Load(). 

Код

class Loader : TreeView
    {
        public void Load()
        {
 
        }
    }


В этом методе я хочу загрузить в treeView какойнить TreeNode. Как мне это сделать?

Или проще будет сделать просто метод, возвращающий TreeView  сформированный:
Код

class Loader : TreeView
    {
        public TreeView Load()
        {
            return TreeView;
        }
    }

PM MAIL   Вверх
Partizan
Дата 27.11.2008, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



lankin
Код

class Loader : TreeView
    {
        public void Load()
        {
             TreeNode newNode = this.Nodes.Add("Node1");
                   newNode.Nodes.Add("Node1.1");
                   newNode.Nodes.Add("Node1.2");
             this.Nodes.Add("Node2");
             this.Nodes.Add("Node3");
        }
    }



--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
lankin
Дата 28.11.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Partizan, Огромное спасибо!!!! Оказывается так просто.
А в таком случае что base. дает? обращение к базовому классу, и почему не его использовать?
PM MAIL   Вверх
TIGERоX
Дата 30.11.2008, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


начинающий...
*


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

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



base дает доступ к методам, полям или свойствам базового класса даже если эти методы, поля, свойства определены как виртуальные и перегружены в дочернем классе
PM MAIL   Вверх
Mag
Дата 1.12.2008, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(lankin @ 28.11.2008,  13:07)
Partizan, Огромное спасибо!!!! Оказывается так просто.
А в таком случае что base. дает? обращение к базовому классу, и почему не его использовать?

Сегодня как раз попал на это: http://msdn.microsoft.com/ru-ru/library/hfw7t1ce.aspx - полностью описано про base
--------------------
В  каждой черной комнате есть выход - всегда есть выход с любой ситуации!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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