2013-05-30 2 views
1

Я пытаюсь создать XML-редактор wysiwyg android layout. У меня есть класс, button(), который содержит все relavent свойства кнопки, которые могут быть размещены на макете (textcolour, size, position и т. Д.). Когда пользователь нажимает кнопку в форме, в представление редактора добавляется новая кнопка. Я хочу иметь возможность создать новый экземпляр этого класса для каждой кнопки в макете, чтобы они могли быть записаны в XML-файл. Однако, при объявлении экземпляра, я хочу, чтобы быть в состоянии назвать их как button1, button2 и т.д. Может быть, какой-то код будет иметь больше смысла ...:Можете ли вы включить значения других переменных в идентификаторы новых переменных в заявлении объявления в vb.net?

Public Class button 'The class where all the properties for the button are defined 
    ... 
End Class 

Public Partial Class MainForm 'The mainform class 
    Dim btnclassno As Integer = 0 'The number of button() classes made 
    ... 
    Sub btnAddButtonClick(sender As Object, e As EventArgs) 
     btnclassno += 1 'Changes it by 1 
     Dim (newbutton & btnclassno) As button = New button()'Defines a new instance of the class called newbutton and then the value of btnclassno (e.g. newbutton1, newbutton2 etc.) 
     ... 
    End Sub 
End Class 

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

+0

Это может быть сделано, но я должен спросить, почему? – Brian

ответ

0

Вы можете использовать этот

Sub btnAddButtonClick(sender As Object, e As EventArgs) 
    static btnclassno = 0 
    Dim newButton As new Button 

    btnclassno += 1 'Changes it by 1 

    newButton.Name = "newButton" & trim(str(btnClassno)) 

    'another newButton properties here 

    Me.Controls.Add(newButton) 

    'Dim (newbutton & btnclassno) As button = New button()'Defines a new instance of 

    'class called newbutton and then the value of btnclassno (e.g. newbutton1, newbutton2 etc.) 

    End Sub 
+0

Я получаю ошибки: «Значение типа« String »не может быть преобразовано в« xml_editor.Button »(в строке ctype) и« Значение типа «xml_editor.Button» не может быть преобразовано в «System.Windows.Forms.Control» »(controls.add) Не могли бы вы объяснить, что должен делать этот код, поскольку, насколько я знаю, ctype конвертирует« newButton1 »или что-то в класс Button, что не помогает. Я хочу иметь возможность включите значение btnclassno в идентификатор переменной newButton. (Извините, но не указано, потому что код на самом деле не работает.) – user2437970

+0

Это изменилось .. попробуйте – matzone

+0

@ matzone. Теперь бит .name теперь работает, но я все еще получаю Ошибка Controls.add.Может ли Me.controls содержать объекты в форме (интерфейсе) программы? Почему бы добавить класс к этой помощи? Сейчас я действительно критичен, спасибо за попытку помочь. – user2437970

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