137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 606
1

Уникальное значение контрола

20.05.2010, 15:27. Показов 1356. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят, есть ли у контролов какое то уникальное значение в приложении (а не в форме)? И как его получить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2010, 15:27
Ответы с готовыми решениями:

Изменить значение контрола на форме из класса
Добрый день всем! Подскажите, плз. Есть форма Form1, на ней контрол TextBox1 Есть статический...

Random-ное уникальное значение от 1 до 10000, 10000 элементов
Здравствуйте! Подскажите есть задача вывести случайным порядком значения от 1 до 10000...

не могу получить значение контрола в EditTemplate
Привет всем! проблема настоллько мизерная. что мне стыдно что я об этом спрашиваю. У меня есть...

Уникальное значение столбца
как сделать уникальное значения столбца TittleBeer (не кодом)?

14
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
20.05.2010, 15:49 2
Может так - у всех контролов есть свойство Tag, которому ты сам волен присвоить что хочешь...
0
137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 606
20.05.2010, 16:32  [ТС] 3
wwowa, и что я буду присваивать? и главное где?
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
20.05.2010, 23:01 4
Возможно тебе нужно это (на примере текстбокса)
TextBoxBase.CreateHandle() - Создает дескриптор для элемента управления. Теоритически дескриптор для каждого элемента уникален.
0
118 / 119 / 20
Регистрация: 21.01.2010
Сообщений: 252
21.05.2010, 03:20 5
У контролов есть свойство Name - уникальное, чем не устраивает? Если я правильно понял конечно.
0
4337 / 1506 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
21.05.2010, 04:35 6
wwowa, таг как раз не уникален, уникально имя
0
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
21.05.2010, 08:16 7
Цитата Сообщение от HIMen Посмотреть сообщение
wwowa, таг как раз не уникален, уникально имя
Это ясно... Но если формы две, то и кнопки можно с одинаковым именем добавить(using разный - но тем не менее). Ему же надо в приложении... Тут я думаю, вопрос конкретизировать надо - зачем это надо....
0
137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 606
21.05.2010, 08:34  [ТС] 8
_Art_, не, имя не уникально... имя может быть в разных формах одно и то же - вот в чем проблема

Добавлено через 48 секунд
wwowa, Да, мне нужно в "приложении"
0
118 / 119 / 20
Регистрация: 21.01.2010
Сообщений: 252
21.05.2010, 11:53 9
имя может быть в разных формах одно и то же - вот в чем проблема
Тогда понятно. Ну можно действительно воспользоватся свойством Tag и либо вручную назначать какие-то уникальныме значения или хранить там GUID.
C#
1
button1.Tag = Guid.NewGuid();
0
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
21.05.2010, 13:58 10
Цитата Сообщение от virus_system Посмотреть сообщение
wwowa, Да, мне нужно в "приложении"
Ну напиши зачем и что хочешь делать, если не секрет. Может другие пути подскажут.....
0
137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 606
21.05.2010, 14:43  [ТС] 11
в общем у меня есть контрол...
в нем автоматически сохраняются какие то настроки (ширина, длина)

C#
1
2
3
4
5
6
7
8
9
10
protected override void OnCreateControl()
{
  base.OnCreateControl();
  SetColumnOrder();
}
protected override void Dispose(bool disposing)
{
  SaveColumnOrder();
  base.Dispose(disposing);
}
класс....
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 internal sealed class gfDataGridViewSetting : ApplicationSettingsBase
    {
        private static gfDataGridViewSetting _defaultInstace =
            (gfDataGridViewSetting)ApplicationSettingsBase
            .Synchronized(new gfDataGridViewSetting());
        //---------------------------------------------------------------------
        public static gfDataGridViewSetting Default
        {
            get { return _defaultInstace; }
        }
        //---------------------------------------------------------------------
        // Because there can be more than one DGV in the user-application
        // a dictionary is used to save the settings for this DGV.
        // As key the name of the control is used.
        [UserScopedSetting]
        [SettingsSerializeAs(SettingsSerializeAs.Binary)]
        [DefaultSettingValue("")]
        public Dictionary<string, List<ColumnOrderItem>> ColumnOrder
        {
            get { return this["ColumnOrder"] as Dictionary<string, List<ColumnOrderItem>>; }
            set { this["ColumnOrder"] = value; }
        }
    }
извлечение сохраненных настроек
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void SetColumnOrder()
        {
 
                if (!gfDataGridViewSetting.Default.ColumnOrder.ContainsKey(/*this.Name*/this.UniqueID))
                    return;
 
                List<ColumnOrderItem> columnOrder =
                    gfDataGridViewSetting.Default.ColumnOrder[/*this.Name*/this.UniqueID];  // как видно  - раньше брал просто по имени контрола - но по этому поводу возник косяк
 
                if (columnOrder != null)
                {
                    var sorted = columnOrder.OrderBy(i => i.DisplayIndex);
                    foreach (var item in sorted)
                    {
                        if (this.ColumnCount > item.ColumnIndex)
                        {
                            this.Columns[item.ColumnIndex].DisplayIndex = item.DisplayIndex;
                            this.Columns[item.ColumnIndex].Visible = item.Visible;
                            this.Columns[item.ColumnIndex].Width = item.Width;
                        }
                    }
                }
        }
сохранение и загрузка идет по названию контрола - а это плохо!!!

P.S. гуид - не вариант. Он каждый раз новый...
0
118 / 119 / 20
Регистрация: 21.01.2010
Сообщений: 252
22.05.2010, 04:11 12
Пока только вариант с нэймом в голову приходит, вида SomeNamespace.Form1.ControlName такой точно должен быть уникален. Как вариант можно хэшировать. Получить можно так
C#
1
Text = button1.Parent.ToString().Substring(0, button1.Parent.ToString().IndexOf(',')) + "." + button1.Name;
Или использовать FindForm().
0
137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 606
24.05.2010, 08:38  [ТС] 13
_Art_,
если использовать Parent, то ругается
"В экземпляре объекта не задана ссылка на объект." на парент - т.к. форма еще не создалась как я понимаю, а контрол уже создался...
0
118 / 119 / 20
Регистрация: 21.01.2010
Сообщений: 252
24.05.2010, 09:14 14
А если SetColumnOrder() вызывать в событии Load формы, а SaveColumnOrder() в событии Closing? Лучше использовать FindForm().ToString() (строка та же), Parent может вернуть другую строку, если Control на какой-нибудь панели. Если всё приложение находится в одном пространстве имен, то строка Form.ControlName, тоже должна быть уникальной.
0
137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 606
24.05.2010, 09:30  [ТС] 15
по поводу вызывать в Load - я не соображу как... У меня же контрол - т.е код в форме не могу писать.
По поводу Parent и FindForm - ругается он все равно пока одинаково (но да FindForm получше в данной ситуации будет)
0
24.05.2010, 09:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2010, 09:30
Помогаю со студенческими работами здесь

Уникальное значение логина
Есть форма регистрации, которая добавляет в БД пользователей. Столкнулся с проблемой что при...

Получить уникальное значение из выпадающего списка
Есть 2 выпадающих списка. Выбираем в первом значение, во втором подставляется другое значение. При...

Передать в ajax уникальное значение из PHP
Здравствуйте! Пытаюсь сделать книжный интернет-магазин, встала проблема: цикл выводит на страницу...

Уникальное значение для ячейки или пустое
Доброе утро господа! Подскажите пожалуйста, необходимо сделать значение ячейки таблицы уникальным,...

Как задать уникальное значение для поля
Привет.Нужно чтобы при добавлении в поле 'login' значения,оно не добавлялось если есть уже такое?...

Уникальное значение по умолчанию в индексированном поле таблицы
Всем доброго дня! Подскажите, как задать уникальное значение по умолчанию в индексированном поле...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru