Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

CheckBox.cs своими руками

38K
01 августа 2010 года
EqKeeper
94 / / 19.02.2010
Доброго времени суток!
Уже довольно давно и достаточно безуспешно бьюсь над следующей задачей:
Получить компонент, аналог CheckBox, у которого состояние не делится на помечено\не помечено\не определено, а представляет целое число - индекс, по которому из встроенного или внешнего ImageList берется рисунок пометки.

Наконец добрался до чудесной утилиты .NET Reflector.
http://www.red-gate.com/products/reflector/
Декомпилировал класс System.Windows.Forms.CheckBox и полученный код вставил в новый класс. Попытался откомпилировать. Однако, выяснилось, что директивы using нужно искать самому. Что делать - начал искать. Тем же reflector'ом выцепил половину. А вот дальше начались странности. Выглядили они, как море ошибок, в стиле: "недоступен из-за его уровня защиты" или "пропущена ссылка на сборку". И т.д.

Помогите, пожалуйста с этим разобраться.
Вот код, еще не испорченный моими ручками, который выдал reflector:
http://webfile.ru/4642381
А вот список ошибок, которые выдает компилятор (VS2010):
http://webfile.ru/4642389

Подключенные namespace'ы:
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Text;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Forms;


P.S. Интересует именно "родная", а не сторонняя реализация класса, потому что после CheckBox тоже самое придется делать с TreeView. И хотелось бы именно создать новый класс с исходными кодами старого, а не делать его наследником. Ибо сейчас это прежде всего опыт. Ну, а если это чудо все-таки откомпилируется, то от этого можно будет плясать, понемного исправляя код под свои нужды. Воть. Очень надеюсь на вашу помощь!

---Добавлено:
В "Depends On" Reflector'a написано:
microlib
System
System.Drawing
System.Windows.Form
Собственно, вот этот самый microlib у меня и не подключен, но если дело в нем, то вопрос - как его подцепить.
38K
05 августа 2010 года
EqKeeper
94 / / 19.02.2010
Господа матерые программисты, неужели никто не может помочь чайнику?:rolleyes: Очень нужно.:(
5
05 августа 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: EqKeeper
Господа матерые программисты, неужели никто не может помочь чайнику?:rolleyes: Очень нужно.:(



CheckBox это системный компонент. Его изготавливает и отрисовывает на экране сам Windows, а дотнет для него предоставлет только обертку.

Если хочешь и чекбокс клевый и три вью с таким же контролом, то быстрее всего сделать это на WPF.

38K
05 августа 2010 года
EqKeeper
94 / / 19.02.2010
Спасибо. Ушел читать - что такое WPF. :)
---
Прочитал, попробовал. Очень необычно, непривычно и подозрительно (как и C# в свое время). Собственно вопрос - стоит ли переходить на него с Windows Form? Пока я вижу. что там очень мало стандартных компонентов, еще плохо себе представляю как с ними работать и т.д. Но если за WPF будущее - то в любом случае буду осваивать его. Собственно стоит ли?

А за наводку в любом случае спасибо. Прочитав о "картинках в кнопках" я с размаху стукнул себя по лбу. Ведь ничто не мешает мне использовать вместо чекбокса кнопку с меняющимися картинками! Тем более, что их состояния мне все равно хранить во вне. Огромное спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог