Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

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

 

  Вопрос: Вопрос по vb.net Добавлено: 14.02.09 15:44  

Автор вопроса:  ygen | Web-сайт: soft.ygen.ru/
В VB6 была возможность задавать одни и те же имена нескольким элементам, но с указанием индекса. Как это задать в VB.NET. Он ругается, если я пытаюсь задать одно и то же имя.

Помогите пожалуйста

Ответить

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

Номер ответа: 1
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #1 Добавлено: 14.02.09 16:20
в NET нет такого понятия как массив контролов.. В VB6 это использовалось чтобы обрабатывать события от нескольких элементов в одной функции, в NET другая идеология, которая реализует тот же механизм но несколько по другому. Тебе надо разбираться с механизмом вызова событий.. Копай в сторону AddHandler .

Ответить

Номер ответа: 2
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #2 Добавлено: 14.02.09 19:20
Мне без этих индексов тоже тяжелее. Если тебе надо решать проблему для применения определённого кода сразу для нескольких элементов то вот есть небольшое решение.
  1. Public Class Form1
  2.     Dim but(0 To 2) As Button
  3.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  4.         Dim i As Integer
  5.         but(0) = Button1
  6.         but(1) = Button2
  7.         but(2) = Button3
  8.         For i = 0 To 2
  9.             If i > 0 Then
  10.                 but(i).Height = but(i - 1).Size.Height
  11.                 but(i).Width = but(i - 1).Size.Width
  12.                 but(i).Top = but(i - 1).Top + but(i - 1).Height + 10
  13.                 but(i).Left = but(i - 1).Left
  14.             End If
  15.         Next
  16.     End Sub
  17. End Class

Раньше можно было по шаблону создавать новый элементы, добавлялся только новый индекс в массиве. А шас я вообще не пойму как это можно осуществлять. Load осталось но только как оно теперь работает я не пойму. Шас вроде надо объявить переменную как объект и прописывать
But as New Button
всё вроде бы красиво и объект есть только он почему то не показывается и свойства менял и прочие нет его и пипец.(

Ответить

Номер ответа: 3
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #3 Добавлено: 14.02.09 20:22
Aston, жжошь извращенец! :-D
ну заполнил ты массив контролов кнопками.. и чо ты с ним теперь делать собрался?? )))
это ты так выравниваешь их??? )))))))

Ответить

Номер ответа: 4
Автор ответа:
 ygen



Вопросов: 36
Ответов: 87
 Web-сайт: soft.ygen.ru/
 Профиль | | #4
Добавлено: 14.02.09 21:47
Да, видимо придётся писать на VB6 :)

P.S. столкнулся ещё с одной проблемой.

При считывании через open...
в общем покажу на примере:

  1.  
  2. Do While Not EOF(fnum)
  3. Input(fnum, q)
  4. If q = "{slova" And q <> "}" Then
  5.                     Input(fnum, i)
  6.                     For j = 1 To i
  7.                         Input(fnum, er)
  8.                         slova.Items.Add(er)
  9.                         Form2.ListBox4.Items.Add(er)
  10.                     Next
  11.                 End If
  12. ...



В общем этот кусок кода считывает из файла слова построчно и добавляет в список каждую строку. Если стоит запятая, он считает,что начинается следующая строка.Не подскажите, что можно сделать,чтобы считывалось всё построчно?

Ответить

Номер ответа: 5
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #5 Добавлено: 14.02.09 22:27
Да, видимо придётся писать на VB6

это на основании чего ты пришел к такому выводу?

Ответить

Номер ответа: 6
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #6 Добавлено: 14.02.09 23:13
Эрос я привёл в виде примера только :). Ты лучше скажи знаешь как создавать программно новый элемент уже в работающем приложении. В ВБ6 это
Load buttom
а в ВБ Нэт не знаю как :(

Ответить

Номер ответа: 7
Автор ответа:
 ygen



Вопросов: 36
Ответов: 87
 Web-сайт: soft.ygen.ru/
 Профиль | | #7
Добавлено: 14.02.09 23:24
Просто к нему я больше привык и не надо изощряться... ))

Ответить

Номер ответа: 8
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #8 Добавлено: 14.02.09 23:43
Ты лучше скажи знаешь как создавать программно новый элемент уже в работающем приложении

  1.  
  2.     ' Create a new TextBox control and add it to the form.
  3.     Dim textBox1 As New TextBox()
  4.     textBox1.Size = New Size(100, 10)
  5.     textBox1.Location = New Point(10, 10)
  6.  
  7.     ' Name the control in order to remove it later.
  8.     ' The name must be specified if a control is added at run time.
  9.     textBox1.Name = "textBox1"
  10.  
  11.     ' Add the control to the form's control collection.
  12.     Me.Controls.Add(textBox1)
  13.  



Просто к нему я больше привык и не надо изощряться... ))

отвыкать от него пора уже было лет 5 назад..

Ответить

Номер ответа: 9
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #9 Добавлено: 15.02.09 00:34
Уген вот написал по бырому тот код что ты просил по выделению строк и добавление их в список, мож что лишнее есть, но он работает. Загони весь файл в переменную и обработай как я. Не знаю то или не то)

  1. Public Class Form1
  2.  
  3.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  4.         Dim STRR As String
  5.         Dim nom As Integer
  6.         Dim i As Integer
  7.         If TextBox1.Text <> "" Then
  8.             nom = 1
  9.             Do While Not nom = 0
  10.                 i = InStr(nom, TextBox1.Text, vbCrLf, CompareMethod.Text)
  11.                 If i <> 0 Then
  12.                     STRR = Mid(TextBox1.Text, nom, InStr(nom, TextBox1.Text, vbCrLf, CompareMethod.Text) - nom)
  13.                     nom = InStr(nom, TextBox1.Text, vbCrLf, CompareMethod.Text) + 2
  14.                     ListBox1.Items.Add(Trim(STRR))
  15.                 Else
  16.                     If nom < Len(TextBox1.Text) Then ListBox1.Items.Add(Mid(TextBox1.Text, nom + 1, Len(TextBox1.Text) - nom))
  17.                     nom = 0
  18.                 End If
  19.             Loop
  20.         End If
  21.     End Sub
  22. End Class

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #10 Добавлено: 15.02.09 05:41
Заявляю всем посетителям форума, что у EROS'а украли пароль и пишут на форуме от его имени самозванцы!

EROS пишет только на "джава", а этот самозванец не знал этого и написал пример кода не на "джава"!

Ответить

Номер ответа: 11
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #11 Добавлено: 15.02.09 05:52
(опровержение)
Не верьте ему!!! Вернее верьте, но частично! )))
Да, на VB я уже давно не пишу.. и даже не устанавливаю его.. но этот пример я тупо скопировал из MSDN! :-)

Ответить

Номер ответа: 12
Автор ответа:
 ygen



Вопросов: 36
Ответов: 87
 Web-сайт: soft.ygen.ru/
 Профиль | | #12
Добавлено: 15.02.09 20:38
Aston, спасибо

Ответить

Номер ответа: 13
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #13 Добавлено: 15.02.09 21:01
Да не за что, было даже интересно :)

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #14 Добавлено: 16.02.09 12:08
Мда, примера с AddHandler никто так и не привел...

Ответить

Номер ответа: 15
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #15 Добавлено: 16.02.09 12:14
Мда, примера с AddHandler никто так и не привел

а зачем? автору оставили маленький кусочек информации не разжеванным, чтоб он хоть немного проявил самостоятельности и поискал нужную информацию... направление, в котором надо копать, ему дали

Ответить

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

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



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