Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Однотипная работа с однотипными элементами на форм Добавлено: 21.10.09 01:14  

Автор вопроса:  skobkin.ru | Web-сайт: skobkin.ru | ICQ: 4163090 

Ответить

  Ответы Всего ответов: 29  

Номер ответа: 16
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #16
Добавлено: 21.10.09 11:15
BG(Алексей) умничает:
Не правильно.
oCtrl нужно привести к типу.

Можно... TextBox унаследован от Control и имеет свойство .Text... в этом случае приведение необязательно (для ленивых) компилятор в любом случае это сделает сам =)

BG(Алексей) протистует:
А с какого перепуга вдруг?

А с такого... :)
А что ты предложишь использовать если у тебя 100 TextBox'ов? Или ты против моего изречения что DataGridView - это массив TextBox'ов?

Ответить

Номер ответа: 17
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #17
Добавлено: 21.10.09 11:16
Да и вообще я уже ответил, что вы копипастите мои примеры! :)

Ответить

Номер ответа: 18
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #18
Добавлено: 21.10.09 11:59
DataGridView - это массив TextBox'ов?

Ты не прав.

Ответить

Номер ответа: 19
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #19
Добавлено: 21.10.09 15:03
Ты не прав.

Ладно... а что это? И разве им нельзя пользоваться таким образом как я описал?

Ответить

Номер ответа: 20
Автор ответа:
 Dully



ICQ: 229882730 

Вопросов: 19
Ответов: 51
 Профиль | | #20 Добавлено: 21.10.09 17:19
BG(Алексей) пишет:
Не правильно.

скопипастил с МСДНа там тоже не правильна?

  1. ' Visual Basic 2005
  2. Private Sub ClearText(ByVal container As Control)
  3.     Dim ctrl As Control
  4.     For Each ctrl In container.Controls
  5.         If TypeOf (ctrl) Is TextBox Then
  6.             ctrl.Text = ""
  7.         End If
  8.         If ctrl.HasChildren Then
  9.              ClearText(ctrl)
  10.         End If
  11.     Next
  12. End Sub

Ответить

Номер ответа: 21
Автор ответа:
 Саня



ICQ: 553816426 

Вопросов: 10
Ответов: 99
 Профиль | | #21 Добавлено: 21.10.09 21:44
DataGridView - это массив TextBox'ов?

В ячейки этой таблицы можно вставлять изображения методом LoadPicture (....), а также сортировка по столбцах, выделение диапазона...
Попробуй реализовать это с помощью массива текстовых полей!

Ответить

Номер ответа: 22
Автор ответа:
 Саня



ICQ: 553816426 

Вопросов: 10
Ответов: 99
 Профиль | | #22 Добавлено: 21.10.09 22:01
Не знаю как в NET, но в VB6 можно копировать и вставлять один и тоже элемент управления (с одним и тем же именем) но с разными индексами, а потом по этим индексам перебирать эти элементы любым циклом. А также это можно сделать програмно, ищи примеры работы с массивами элементов управления.

Ответить

Номер ответа: 23
Автор ответа:
 BG(Алексей)



Вопросов: 26
Ответов: 295
 Профиль | | #23 Добавлено: 22.10.09 06:04
__Pavel__ пишет:
А что ты предложишь использовать если у тебя 100 TextBox'ов? Или ты против моего изречения что DataGridView - это массив TextBox'ов?

Буду использовать 100 TextBox-ов. Потому как это будет намного легче чем один датагрид. Но по большому счету, всё зависит от реализации.

__Pavel__ пишет:
Можно... TextBox унаследован от Control и имеет свойство .Text... в этом случае приведение
Это просто счастье:)
Только из-за этого не вохникает ошибки. Смотри ниже.

__Pavel__ пишет:
Да и вообще я уже ответил, что вы копипастите мои примеры!
Уха-ха. Уж слишком ты высокого мнения о себе. Кстати, а когда будет твой код Супер Шифрования? Или что, Бобик сдох?


Dully пишет:
BG(Алексей) пишет:
Не правильно.

скопипастил с МСДНа там тоже не правильна?
 
На будущее. МСДН-ом пользуюсь в редких случаях. В основном ObjectBrowser.
А тебе скажу, если учишь или отвечаешь на вопросы, то отвечай или учи правильно. Или не отвечай вообще, потому как это будет намного правильней, чем ответить не правильно.

  1. Public Class MyPictureBox
  2.     Inherits PictureBox
  3.  
  4.     Private m_property As Byte
  5.  
  6.     Property MyProperty() As Byte
  7.         Get
  8.             Return m_property
  9.         End Get
  10.         Set(ByVal value As Byte)
  11.             m_property = value
  12.         End Set
  13.     End Property
  14. End Class


и

  1.         For Each c As Control In Me.Controls
  2.             If TypeOf c Is MyPictureBox Then
  3.                 c.MyProperty = 16
  4.             End If
  5.         Next

Хотелось бы посмотреть, как этот код(твой код) у тебя сработает:)

Ответить

Номер ответа: 24
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #24
Добавлено: 22.10.09 08:29
Ладно... а что это?
Это просто изображение таблицы. Когда ты щелкаешь по ней, создается текстбокс для данной ячейки и данные транслируются в нее.
И разве им нельзя пользоваться таким образом как я описал?

Я конечно не вдавался в подробности, как он работает, но вот один из вариантов (как сделал бы я): когда ты обращаешься к какому-нибудь Range(12,3), Grid временно создает тебе текстбокс в памяти для этой ячейки, и ты работаешь с ней как с текст боксом, а как только ты поработал - копирует данные в массив и удаляет текстбокс. В итоге с твоей стороны все выглядит как массив текстбоксов, а на самом деле все куда проще и жрет ресурсов меньше.

Ответить

Номер ответа: 25
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #25 Добавлено: 22.10.09 10:23
__Pavel__ пишет:
Кстати, есть ли другой способ привести объект к нужному типу кроме старого CType? А то я чет не смог найти

TryCast, DirectCast

Ответить

Номер ответа: 26
Автор ответа:
 StackOverflow



Вопросов: 0
Ответов: 2
 Профиль | | #26 Добавлено: 23.10.09 13:45
На будущее. МСДН-ом пользуюсь в редких случаях. В основном ObjectBrowser.
А тебе скажу, если учишь или отвечаешь на вопросы, то отвечай или учи правильно. Или не отвечай вообще, потому как это будет намного правильней, чем ответить не правильно.

  1. Public Class MyPictureBox
  2.     Inherits PictureBox
  3.  
  4.     Private m_property As Byte
  5.  
  6.     Property MyProperty() As Byte
  7.         Get
  8.             Return m_property
  9.         End Get
  10.         Set(ByVal value As Byte)
  11.             m_property = value
  12.         End Set
  13.     End Property
  14. End Class


и

  1. For Each c As Control In Me.Controls
  2.             If TypeOf c Is MyPictureBox Then
  3.                 c.MyProperty = 16
  4.             End If
  5.         Next

Хотелось бы посмотреть, как этот код(твой код) у тебя сработает:)

Ы?
      For Each c As Control In Me.Controls
         If TypeOf c Is MyPictureBox Then
            CallByName(c, "MyProperty", CallType.Set, 16)
            'c.MyProperty = 16
         End If
      Next

ЫЫ?
      For Each C As MyPictureBox In Me.Controls.OfType(Of MyPictureBox)()
         C.MyProperty = 16
      Next

Ответить

Номер ответа: 27
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #27 Добавлено: 23.10.09 13:51
For Each c As Control In Me.Controls
        If TypeOf c Is MyPictureBox Then
            c.MyProperty = 16
        End If
    Next

не догоняю вообще о чем топик, но это заработает если в опциях компилятора разрешено позднее связывание.

Под последним примером StackOverflow готов подписаться

Если делаете массив контролов, загоните его в память в TextBox[] или прямо с ним и работайте, нафиг Controls перебирать? Там могут быть и левые текстбоксы

Ответить

Номер ответа: 28
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #28
Добавлено: 23.10.09 23:33
BG(Алексей) несет бред:
Буду использовать 100 TextBox-ов.

ухаахаа... иди учись мальчик...

Я понимаю что особи твоего вида немного отстают в интеллекте от человека и не усваивают ВСЮ прочитанную информацию, но замечу, что я сказал что приведение ненужно ТОЛЬКО в ДАННОМ случае!

Ответить

Номер ответа: 29
Автор ответа:
 Dully



ICQ: 229882730 

Вопросов: 19
Ответов: 51
 Профиль | | #29 Добавлено: 24.10.09 06:19
BG(Алексей) пишет:
А тебе скажу, если учишь или отвечаешь на вопросы, то отвечай или учи правильно.

BG(Алексей) пишет:
Хотелось бы посмотреть, как этот код(твой код) у тебя сработает


я ответил на вопрос темы... и ответ мой считаю верным относительно текстбоксов, и письками мерится не собираюсь...

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам