Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2008, 17:28   #1
kommunist
C# developer
Форумчанин
 
Аватар для kommunist
 
Регистрация: 03.10.2007
Сообщений: 393
По умолчанию Компоненты в С#

Здраствуйте есть вопрос вот если мы хотели написать компонент в дэльфи мы брали открывали файл новый и т.д. Сечас я учу С# и захотелось написать свой компонент и вот какой файл создать для этого?
Пишу в MS Visual C# Express Edition.
Заранее всем благодарен.
I like WPF
kommunist вне форума Ответить с цитированием
Старый 19.02.2008, 23:29   #2
darkstarx
Пользователь
 
Регистрация: 20.01.2008
Сообщений: 24
По умолчанию

Ну вобщем-то компонентов как таковых нет, но есть библиотеки классов. Наверно обратили внимание на
using System;
using System.Data;
using System.Linq; и так далее

так вот, все это
System.dll
System.Data.dll
System.Linq.dll и так далее

эти библиотеки реализуют методы классов, там также есть наследование от существующих классов компонентов и контролов, ну вобщем все как вам привычно было раньше в Delphi.

Создать эту библиотеку можно как обычный проект, потом Вы ее буилдите, пишете для нее xml-файлик, который потом используется для регистрации Вашего нового контрола в палитре компонентов.

Вобщем читайте MSDN - там написано все.
darkstarx вне форума Ответить с цитированием
Старый 19.02.2008, 23:36   #3
darkstarx
Пользователь
 
Регистрация: 20.01.2008
Сообщений: 24
По умолчанию

Например, Вы написали контрол под названием ChartControl и получили библиотеку ChartControl.dll

Теперь Вы создаете xml-файл пустой и пишите туда примерно следующее:

<?xml version="1.0" encoding="utf-8"?>
<VSContent xmlns="http://schemas.microsoft.com/developer/vscontent/2005">
<Content>
<FileName>ChartControl.dll</FileName>
<DisplayName>ChartControl</DisplayName>
<Description>Simple chart control with date-valued X-axis.</Description>
<FileContentType>Toolbox Control</FileContentType>
<ContentVersion>1.0</ContentVersion>
</Content>
</VSContent>

Cохраняете этот файлик с названием ChartControl.vscontent и ложите его рядом с вашей библиотеке в одном каталоге. Затем жмете на этот файл и запускается студийная хреновинка, которая делает попытку установить ваш контрол.
Появляется сообщение, что типа ОЙ, ошибка, типа создан каталог с вашим файлом где-то внутри текущего каталога и все, ниче не установил.
Потом несмотря на это и ничего не меняя снова жмете файл, установка...готово, наслаждайтесь вашим контролом в палитре (ToolBox)
darkstarx вне форума Ответить с цитированием
Старый 20.02.2008, 12:00   #4
kommunist
C# developer
Форумчанин
 
Аватар для kommunist
 
Регистрация: 03.10.2007
Сообщений: 393
По умолчанию

Спасиюо юольшое вы мне очень помогли. Есть еще один маленький вопросик.Создаю новую библиотеку классов. хочу прописать System.Windows.Forms не подключается его просто нет в пространстве имен System для class library.
I like WPF
kommunist вне форума Ответить с цитированием
Старый 22.02.2008, 21:16   #5
darkstarx
Пользователь
 
Регистрация: 20.01.2008
Сообщений: 24
По умолчанию

Всегда пожалуйста )
Да тут тоже без проблем особых. Заходим в browser проектов, выбираем в солюшене нужный проект (если их несколько), смотрим нод в дереве под названием References, жмыхаем правым ухом мыши по нему и выбираем Add Reference, а потом из списка выискиваем System.Windows.Forms и жмем ok. Все, теперь можете добавлять строчуц using System.Windows.Forms в любой файл своего проекта.
darkstarx вне форума Ответить с цитированием
Старый 14.04.2008, 14:30   #6
viperfish
 
Регистрация: 14.04.2008
Сообщений: 7
По умолчанию

2darkstarx:: извините, но вы написали полнейшую лабуду! )) хотелось просто подписаться "поржал"

"компонентов как таковых нет" - как это нет?
а для чего класс
Код:
namespace System.ComponentModel
public class Component : MarshalByRefObject, IComponent, IDisposable
{
...
}
посмотрите существующие контролы - все порождены от данного класса.

2kommunist:: если вам нужен невидимый компонент - породите его от класса Component, если видимый - от класса Control (ну или от любого другого видимого компонента), если нужен контейнер для контролов - используйте UserControl.

вот пример простой контролки, рисующей овал:
Код:
using System.Drawing;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public sealed class EllipseControl : Control
    {
        protected override void OnPaint(PaintEventArgs e)
        {
            e.Graphics.DrawEllipse(Pens.Black, ClientRectangle);
        }
    }
}
пример: програмно добавляем контрол на форму
Код:
EllipseControl ellipse = new EllipseControl();
Controls.Add(ellipse);
ellipse.Dock = DockStyle.Fill;
viperfish вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
компоненты bill Помощь студентам 10 19.04.2008 14:02
Компоненты AngelOfDeath Компоненты Delphi 0 12.04.2008 11:43
Компоненты! Altera Компоненты Delphi 2 07.03.2008 15:22
Компоненты для XML John_chek Компоненты Delphi 1 21.11.2007 11:32