Използвайте цветовете на вашата програма в Visual Studio

Този пример е възникнало от една заявка в тази статия .

Контрол ColorDialog представя традиционната цветова палитра, но истината е, че Visual Studio е много по-хубав и показва всички цветове по име, така както са определени в System.Drawing свойства обектни.

Като се има предвид проблемът, че няма контрол, за да ни покаже този списък от цветове виждаме начина, по който човек може да се constriur.

Например ние се нуждаем от нов проект и две форми.

В първата форма палката, просто трябва да се обадите на формуляр 2, както е показано на следната фигура:

coloresNombre001

бутона и кода е както следва:

 BtnColor_Click Private Sub (ByVal изпращача Като System.Object, ByVal Е, System.EventArgs,) Дръжки btnColor.Click
 Нова Form2 Дим vForm2
 vForm2.ShowDialog ()
 End Sub

и в тази форма N botoes падащ списък и две (ще приеме и да отмени), в следния вид:

coloresNombre002

В Load случай на формуляра установи някои свойства на падащ списък и да носят имената на цветовете със следния код:

 Form2_Load Private Sub (ByVal изпращача Като System.Object, ByVal Е, System.EventArgs,) Дръжки MyBase.Load
 ListBox1.DrawMode = DrawMode.OwnerDrawFixed
 ListBox1.ItemHeight = 20

 ListBox1.Items.Clear ()
 ListBox1.BeginUpdate ()
 За всеки PI Както Reflection.PropertyInfo В GetType (Color). GetProperties (или Reflection.BindingFlags.Static Reflection.BindingFlags.Public)
 ListBox1.Items.Add (pi.Name)
 До
 ListBox1.EndUpdate ()
 End Sub

На първия ред на Load "ListBox1.DrawMode = DrawMode.OwnerDrawFixed" установи, че всички елементи на контрол, се изготвят ръчно и имат една и съща височина. Това ademças, DrawItem събитие предизвиква шоу точно преди всеки елемент.

За да настроите DrawItem случай на падащ списък, изберете (в режим на проектиране) ListBox1, натиснете F4, за да видите свойствата, и на върха на прозорец Свойства изберете светкавица, за да видите случай, че контролът е на разположение , ние DrawItem и ние двойно кликване. Следното изображение показва как:

coloresNombre003

и това е кодът на събитието DrawItem

 ListBox1_DrawItem Private Sub (ByVal подателя като Object, ByVal Е Като System.Windows.Forms.DrawItemEventArgs), Дръжки ListBox1.DrawItem
 На Дим правоъгълник Като правоъгълник = e.Bounds

 Ако (e.State и DrawItemState.Selected) След това
 e.Graphics.FillRectangle (SystemBrushes.Highlight, правоъгълник)
 Още
 e.Graphics.FillRectangle (Brushes.White, правоъгълник)
 Крайна сметка, ако

 , Дим Като String = ListBox1.Items nombreColor (e.Index)

 Дим б като Ню SolidBrush (Color.FromName, (nombreColor))

 rectangulo.Inflate (-16, -2)
 e.Graphics.FillRectangle (B, Ню правоъгълник (rectangulo.X, rectangulo.Y, 30, rectangulo.Height.))

 e.Graphics.DrawRectangle (Pens.Black, Ню правоъгълник (rectangulo.X, rectangulo.Y, 30, rectangulo.Height.))

 Ако (e.State и DrawItemState.Selected) След това
 e.Graphics.DrawString (nombreColor, e.Font Brushes.White, rectangulo.X + 34, rectangulo.Y + 2)
 Още
 e.Graphics.DrawString (nombreColor, e.Font Brushes.Black, rectangulo.X + 34, rectangulo.Y + 2)
 Крайна сметка, ако
 End Sub

Сега ние просто трябва да програмирате на бутоните eventosde, както е показано в следния код:

 BtnAceptar_Click Private Sub (ByVal изпращача Като System.Object, ByVal Е, System.EventArgs,) Дръжки btnAceptar.Click
 My.Forms.Form1.BackColor = Color.FromName (ListBox1.SelectedItem)
 End Sub

 BtnCancelar_Click Private Sub (ByVal изпращача Като System.Object, ByVal Е, System.EventArgs,) Дръжки btnCancelar.Click
 Me.Close ()
 End Sub

Е, за да изпита прилагането ... Ако всичко е минало добре, изглежда по следния начин:

coloresNombre004

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

Graphics.FillRectangle (метод): изпълва вътрешността на правоъгълника, определен от координатната чифт, ширина и височина.

Graphics.DrawRectangle (метод): Начертайте правоъгълник, определен от една координатна двойка, ширина и височина.

Graphics.DrawString (метод): Начертайте определен текстов низ на определено място и с определено Четка и обекти на шрифта.

Надявам се това помага и можете да използвате във вашите проекти.

11 коментара към "Използване на Visual цветове студио в програмата си"

  1. Bitacoras.com казва:

    Информация Bitacoras.com ...

    Курс в Bitacoras.com: Този пример е възникнало от заявка в тази статия. Контрол ColorDialog tresenta нас традиционна цветова палитра, но тя е на TRU д че на Visual Studio е много по-хубав и показва всички цветове за вашия N .....

  2. Cristyan казва:

    Много добър пример, благодаря ви.

  3. Хосе Луис казва:

    Чудесно!
    Е много оценявам!

  4. Оскар Даниел казва:

    ! Много добре!
    Единственото нещо, което съм работил беше бутона Отказ.

  5. Erick казва:

    не успее да изберете прозрачен цвят, той ще бъде? ........... други цветове, ако тя работи

    salu2

    • Елисей казва:

      е, че прозрачен цвят не може да се прилага като цвета на фона на формуляр, но ако се приложи към други контроли.

      Благодаря за коментар!

  6. gercer89 казва:

    спаси живота ми този пример! ... но като мога да видя на екрана на prpiedades, в които можете да промените цвета, тъй като ви позволява ме види "My.Forms.Form1.BackColor." благодари salu2

  7. Диего казва:

    здравей
    Аз получите съобщение за грешка Вместо идентификатор точно. <A Ако (e.State и DrawItemState. Изберете ED) Тогава
    e.Graphics.FillRectangle (SystemBrushes.Highlight, правоъгълник)

    ПОМОГНЕТЕ МИ ОТ ФА
    Graciass

  8. Хенри казва:

    Поздрави ...
    Търся техники, за да направят по-приятен дизайн на контроли, които трябва да бъде като на летището, но нямам представа и не мога да намеря нещо, моля, ако можете да ми помогнете с това на anetmano много ви благодаря ...

  9. Давид казва:

    този Вера, благодаря ви много за този пример. Ще мога ли да я приложите към моите нужди

    Благодаря ви от Мерида, Юкатан

Коментар