powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как поместить в массив Me.BackColor?
21 сообщений из 21, страница 1 из 1
Как поместить в массив Me.BackColor?
    #32596438
narval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В массив добавил цвет фона формы:
Код: plaintext
1.
2.
3.
 
Dim List As New ArrayList
List.Add(Me.BackColor)
Потом наверное наивно хочу покрасить фон формы красным цветом:
Код: plaintext
1.
2.
 
List.Item( 0 ) = Color.Red

Понятно что так не будет работать, в массиве просто абстрактный цвет. А что туда нужно поместить чтобы работало?

me.BackColor = Color.Red - не предлагать! :-)
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32596444
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Понятно что так не будет работать, в массиве просто абстрактный цвет. А что туда нужно поместить чтобы работало?


Вообще то я не крутой специалист...
Но, в массиве сейчас не цвет, а свойство формы BackColor

P.S. А нельзя сказать для чего это нужно... просто интересно...
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32596449
narval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да похоже нет. По крайней мере у меня так не работает. А надо вот зачем, в массив хочеться запихать все свойства всех контролов формы имеющие цвет, ну и красить их пользователем... Да и просто непонятно как получить ссылку именно на свойство формы BackColor
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32596451
narval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думал может быть типа того Ctype(List.Item(0), Me..BackColor) = Color.Red так ведь совсем фигня получается
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32596477
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Я видел что то похожее, здесь на форуме, как получить ссылку на свойство, только не припомню в каком топике...
2. А так, как хочешь ты, не получиться - в ArrayList хранятся объекты, а не их свойства...
Код: plaintext
1.
2.
Dim List As New ArrayList
List.Add(Color.Red)
Вот такое добавление в лист будет правильно...
P.S. В любом случае, не думаю что получиться одним махом придать всем контролам свойства цвета (покрайней мере я такого не слышал)...
Кстати, что каждому контролу придать цвет отдельно тяжко???
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32596483
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока курил, посетила мысль (демон..., мысли всегда приходят по ночам...)
Делай так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Public Class Form1
    Dim m As Color

    Private Sub CheckBox1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
        If CheckBox1.Checked Then
            m = Color.Aqua
            colorchange()
        End If

    End Sub

    Private Sub colorchange()
        Me.BackColor = m
        тут остальные контролы с настройкой цвета = m
        .........
        .........
    End Sub

End Class

Я думаю, это самый правильный способ... Один раз создал Sub colorchange и в ходе работы присваиваешь значения переменной цвета... m = Color.Aqua (или ещё какой) а потом вызываешь Sub и дело, так сказать в шляпе :))
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32598600
narval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to vladgrig:

Вот как получилось, может будет интересно


Код: plaintext
1.
2.
3.
4.
5.
6.
        Dim List As New ArrayList
        Dim TypeF As Type = Me.GetType
        Dim PropInfo As PropertyInfo = TypeF.GetProperty("BackColor")

        List.Add(PropInfo)
        CType(List.Item( 0 ), PropertyInfo).SetValue(Me, Color.Red, Nothing)

Вся фишка в методе SetValue который и позволяет задать нужный цвет :-)
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32598609
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, очень интересно, спасибо...
Я тут, с вашего позволения, код чуть сократил
Код: plaintext
1.
2.
3.
4.
5.
        Dim List As New ArrayList
        
        List.Add(Me.GetType.GetProperty("BackColor"))
        
        List.Item( 0 ).SetValue(Me, Color.Red, Nothing)
Извините, дурацкая привычка (просто мне так удобнее для понимания)....
Получается, что в книге, которую я читал есть неточность, даже свойства можно загнать в ArrayList...
P.S. И всё же, не понятно, - ЗАЧЕМ??? Ведь Me.BackColor - короче...
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32598617
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так и есть:

Код: plaintext
1.
2.
3.
Me.GetType.GetProperty("BackColor").SetValue(Me, Color.Red, Nothing)

Me.BackColor=Color.Red

Две идентичные строки, только первая позволяет себя загонять в ArrayList
Забавно....
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32598630
narval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, я тоже заметил...
Надо все таки по обьективным причинам, в приложении куча экранных форм, дизайнер из меня нулевый, пользователям (а они далеко) цвета категорически не нравяться. Вот я и пишу унивирсальную формочку котороя при вызове из любой формы приложения будет содержать дерево элементов управления (кстати, не подскажешь как их перебрать ВСЕ, в том числе и содержащихся в других элементах, типа GroupBox?) и список свойств этих конролов которые с одной стороны имеют тип Color, а с другой допускают запись. Ну и пусть красят что хотят во что хотят, я избавлюсь от претензий то не нравиться по цвету, се не нравиться...
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32598631
narval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, я тоже заметил...
Надо все таки по обьективным причинам, в приложении куча экранных форм, дизайнер из меня нулевый, пользователям (а они далеко) цвета категорически не нравяться. Вот я и пишу унивирсальную формочку котороя при вызове из любой формы приложения будет содержать дерево элементов управления (кстати, не подскажешь как их перебрать ВСЕ, в том числе и содержащихся в других элементах, типа GroupBox?) и список свойств этих конролов которые с одной стороны имеют тип Color, а с другой допускают запись. Ну и пусть красят что хотят во что хотят, я избавлюсь от претензий то не нравиться по цвету, се не нравиться...
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32598637
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот тут
Ещё на форуме есть конкретно про построение дерева... но я не могу найти, там тоже рекурсия, поищи сам, если интересно... (есть точно, я читаю топики давно, так что не сомневайся)
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32598638
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ещё, если не трудно, можно будет взглянуть на полученный результат в виде маленького проекта (действительно, ОЧЕНЬ интересно)
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32598641
narval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, конечно, надеюсь к утру будет готово :-)
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32598681
narval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лови, отправил. Буду рад незлобной критике :-)
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32598695
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Лови, отправил. Буду рад незлобной критике :-)

А, критиковать то, особо и нечего... Всё ОК
Спасибо, очень поучительно...
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32598969
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 narval и vladgrig
Я всегда выступаю за общедоступность полученного кода, о котором идет речь в топике. Тем более что такая возможность есть (см. Приложить файл к своему сообщению).
Это для того чтобы через полгода или год, кто-нибудь не поднял данный топик с просьбой выслать проектик и ему тоже. А нас тут может уже и не быть

Теперь мое ИМХО по теме цветовых схем. Я не использую при разработке приложений какие либо точные цвета, и не разукрашиваю другие контролы, тем самым ко мне и нет претензий пользователей по цветам. Какую пользователь выставит у себя цветовую схему в Windows так мой интерфейс и будет выглядеть.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32599001
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С удовольствием бы положил проект, полученный мною по мылу, но без разрешения автора - делать это не буду... Так что претензия не ко мне...

автор
А нас тут может уже и не быть
Тьфу, тьфу, тьфу...

автор
Теперь мое ИМХО по теме цветовых схем. Я не использую при разработке приложений какие либо точные цвета, и не разукрашиваю другие контролы, тем самым ко мне и нет претензий пользователей по цветам. Какую пользователь выставит у себя цветовую схему в Windows так мой интерфейс и будет выглядеть.
Согласен, но мне понравилась идея и, особенно, контрол для выборки цвета (вот его я точно могу выложить, так как там и я приложил руку...:)), правда совсем чуть, чуть...), но его нужно исполнить на VB 2003, а то он пока на 2005, и я не уверен, что на 2003 пойдёт) Кстати вопрос... если сделал dll для контрол в 2005, он на 2003 пойдёт???

P.S. Я сам удивлён, что проект послали по e-mail
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32599021
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladgrig
особенно, контрол для выборки цвета (вот его я точно могу выложить, так как там и я приложил руку...:)), правда совсем чуть, чуть...), но его нужно исполнить на VB 2003, а то он пока на 2005, и я не уверен, что на 2003 пойдёт) Кстати вопрос... если сделал dll для контрол в 2005, он на 2003 пойдёт???

А для чего нам dll, были бы исходники а там....
По поводу dll 2005 надо попробовать, а результаты запостить в топик по FrameWork 2.0

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32604060
narval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, не обращал внимания на эту возможность.
...
Рейтинг: 0 / 0
Как поместить в массив Me.BackColor?
    #32604807
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКстати вопрос... если сделал dll для контрол в 2005, он на 2003 пойдёт
Ответ: НЕТ не пойдёт, а жаль...
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как поместить в массив Me.BackColor?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]