Тема: .NET Windows Forms
Решил сделать собственный компонент ActiveX содержащий основные элементы управления (контролы) класса Windows Forms из .NET Framework. Данный проект скорее учебный, поэтому очень серьезно к нему относиться не стоит. Однако он вполне может получить развитие. Программист я начинающий, поэтому позорные исходники выкладывать не буду (пока) :rolleyes: А тем, кому нужны исходники, думаю вполне знают как посмотреть их из того, что есть.
Если кому данная тема интересна, прошу помощи в тестировании. Помимо тестирования свойств и событий хотелось бы услышать пожелания, замечания о необходимости тех или иных "фенечек".
Установщика пока нет, поэтому все делаем "ручками". Для работы компонента в системе должна присутствовать Framework v.2.0 и 3.5 (как правило есть всегда)
Копируем сборку "ShWinForms.dll" в известное место (например в "C:\Program Files (x86)\CSoft\TDMS 4.0"). Затем запускам командную строку (cmd.exe) и затем регистрируем данную сборку.
C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe "C:\Program Files (x86)\CSoft\TDMS 4.0\ShWinForms.dll" /codebase
если нужно снять регистрацию пишем:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe "C:\Program Files (x86)\CSoft\TDMS 4.0\ShWinForms.dll" /unregister
В дальнейшем нужно будет только менять файл, перерегистрация не нужна.
Пока сделал один элемент управления Button. По нему большинство свойств и событий хочется отработать.
Итак по Button реализовано:
Свойства
string BackColor { get; set; }
string BackgroundImage { set; }
string BackgroundImageLayout { set; }
int Cursor { set; }
string FlatStyle { set; }
string FlatAppearanceBorderColor { get; set; }
int FlatAppearanceBorderSize { set; }
string FlatAppearanceMouseDownBackColor { get; set; }
string FlatAppearanceMouseOverBackColor { get; set; }
string FontName { get; set; }
float FontSize { get; set; }
bool FontBold { get; set; }
bool FontItalic { get; set; }
bool FontStrikeout { get; set; }
bool FontUnderline { get; set; }
string ForeColor { get; set; }
string ButtonImage { set; }
string ImageAlign { set; }
string Text { get; set; }
string TextAlign { set; }
string TextImageRelation { set; }
bool UseMnemonic { get; set; }
bool UseVisualStyleBackColor { get; set; }
bool UseWaitCursor { get; set; }
int ButtonWidth { get; set; }
int ButtonHeight { get; set; }
Собыия
void Click();
void MouseMove();
Использовать я думаю все понимают как. Пример:
Set button1 = ThisForm.Controls("ACTIVEX1").ActiveX button1.BackColor = "Linen" button1.ForeColor = "Aqua" button1.Text = "&MyButton" button1.BackgroundImage = "D:\\000.jpg" button1.BackgroundImageLayout = "2" button1.Cursor = 2 button1.FlatStyle = "Flat" button1.FlatAppearanceBorderSize = 3 button1.FlatAppearanceBorderColor = "Bisque" button1.FlatAppearanceMouseDownBackColor = "Coral" button1.FlatAppearanceMouseOverBackColor = "Yellow" button1.UseVisualStyleBackColor = true button1.FontBold = false button1.FontName = "Arial" button1.FontSize = 31 button1.UseWaitCursor = true button1.ButtonWidth = 115 button1.ButtonHeight = 55 button1.FontItalic = true button1.FontStrikeout = true button1.FontUnderline = true