2016-03-12 3 views
-2

У меня есть большая проблема. У меня есть 122 кнопки, и они должны иметь наш образ, вручную он займет «год». Я хочу сделать это автоматически, например Button1 имеет имя 1, а у меня есть фотография ресурсов с именем 1.png, button2 - 2 и ресурсы 2.png. Как заполнить все эти кнопки автоматически? Спасибо за помощь :)Лучший способ сделать 122 кнопки с изображением

+0

Объяснить «заполнить кнопки» и «должен иметь свой имидж». Покажите нам код, который у вас есть. –

+0

Я должен добавить это .. для дальнейшего использования. Кривая обучения для нового пользователя не крутая как таковая, но выяснение того, как использовать стек, не всегда очевидно. Пожалуйста, займите несколько минут и посмотрите здесь [ask], и также важно посмотреть здесь .. [mcve] .. Также, если ответ действительно для вас, нажмите на галочку слева от ответа, чтобы вопрос отмечен как ответ, и это гарантирует, что человек, который разместил его, получает репутацию. Приветствия. –

+0

У меня нет кода, у меня есть только кнопки и вкладки, это приложение для показа счетчиков в LOL, и мне нужно 122 кнопки с иконками champ. Мой английский плохой, так что эта нить выглядит как .... Но, спасибо в следующий раз, я буду читать и использовать эти советы, чтобы сделать обычную нить. :) –

ответ

0

Создание кнопок в петле легко, но добавление уникальных обработчиков для каждой кнопки - это боль. Вам лучше создать одну кнопку, скопировать ее и вставить ее еще 121 раз. Затем в вашей программе создайте sub, как показано ниже, чтобы добавить фоновые изображения к каждой кнопке.

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    AddBackgroundToButtons 
End Sub 

Private Sub AddBackgroundToButtons() 
    For Each control As Object In Me.Controls 
     Dim btn As Button 
     If TypeOf control Is Button Then 
      btn = CType(control, Button) 
     Else 
      Continue For 
     End If 
     Dim btnNum As Integer 
     If Integer.TryParse(btn.Name.Substring(6), btnNum) Then 
      If btnNum >= 1 AndAlso btnNum <= 122 Then 
       Dim img As Image = New Bitmap("K:\png\" & btnNum.ToString & ".png") 
       btn.BackgroundImageLayout = ImageLayout.Center 
       btn.BackgroundImage = img 
      End If 
     End If 
    Next 
End Sub 

если кнопки находятся внутри Groupbox или какой-либо другой контейнер, то вам, возможно, потребуется изменить Me.Controls к чему-то вроде Me.GroupBox1.Controls

Смежные вопросы