2016-01-04 3 views
0

Я новичок в использовании визуальной студии для C# по крайней мере. Я могу пропустить C# в Unity весь день, однако, Мне очень трудно понять, почему эта функция работает неправильно.C# Функция не работает правильно

(Консольные линии)> DO RUN. Но ничего больше не работает, период.

Вот первый код - это кнопка - (которая действительно работает).

 private void button1_Click(object sender, EventArgs e) 
    { 
     SaveLastUsage(); // Save Variables. 
     CreateAddTab(); 
    } 


    public void CreateAddTab() 
    { 
     CanvasSmith main = new CanvasSmith(); 
     main.AddTab(); 
    } 

Однако, как я уже упоминал, CONSOLE LINES DO RUN, но не фактические элементы управления Tab.

 public void AddTab() 
    { 

     this.tabArea = new TabControl(); 

     this.tabArea.Visible = true; 
     Console.WriteLine("I AM RUNNING"); 
     string title = "TabPage " + (this.tabArea.TabCount + 1).ToString(); 
     TabPage myTabPage = new TabPage(title); 
     this.tabArea.TabPages.Add(myTabPage); 


     // ALSO TRIED IT LIKE 
     // tabArea.Visible = true; 
     //Console.WriteLine("I AM RUNNING"); 
     //string title = "TabPage " + (tabArea.TabCount + 1).ToString(); 
     //TabPage myTabPage = new TabPage(title); 
     //tabArea.TabPages.Add(myTabPage); 
    } 

Любая помощь, которую вы можете предоставить, была бы весьма признательна. Но буквально - ничего не бежит, кроме консольных линий. Нет ошибок, ничего - просто не работает.

+0

Добро пожаловать в Stackoverflow. Чтобы помочь другим людям помочь вам, пожалуйста, укажите точное описание проблемы. Каково поведение кода сейчас? И как вы ожидаете/хотите, чтобы он себя вел? – Domysee

+0

Что такое 'CanvasSmith main'? Вы добавляете его в пользовательский интерфейс где угодно? – ChrFin

+0

Извините, не читал ваших сообщений! Прямо сейчас у меня две формы: одна - основная форма - там, где есть вкладки. И еще один, который создает вкладки (это программа рисования). Итак, создаем новую вещь окна текстуры ... Ну кнопка на новом окне текстуры работает, но вызываются только линии консоли .... То, что я пытаюсь сделать, - сделать вкладки невидимыми - что я и делаю. Но при создании новой текстуры они становятся видимыми и создают вкладку. – n1warhead

ответ

0

Вы должны привязать свой контроль к форме. Я предполагаю, что это < - указывает на объект формы. В противном случае вам следует предоставить дополнительную информацию о настройке вашего проекта.

Например.

public void AddTab() 
{ 

    this.tabArea = new TabControl(); 

    this.tabArea.Visible = true; 
    Console.WriteLine("I AM RUNNING"); 
    string title = "TabPage " + (this.tabArea.TabCount + 1).ToString(); 
    TabPage myTabPage = new TabPage(title); 
    this.tabArea.TabPages.Add(myTabPage); 

    this.Controls.Add(tabArea); 
} 
+0

Пс. вам не всегда нужно использовать «this» – Blaatz0r

+0

Просто попробовал, он все еще не работает :(И да, это компонент формы. Что я делаю, кнопка находится в другой форме, поэтому я ссылаюсь на основную форму (где находится элемент управления вкладкой) и запустить блок кода внутри основной формы, и он просто запускает линии консоли. И я знаю об этом, я просто пытался это сделать, потому что видел это на веб-сайте MSDN, поэтому просто попробовал это так: – n1warhead

+0

Вы бы так любезны поделиться другим кодом? Таким образом, мне и другим будет легче определить, что может быть проблемой :) – Blaatz0r

1

Я ПОЛУЧИЛ ЭТО! Мне пришлось бросить его!

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

изменено CanvasSmith main = new CanvasSmith();

к

основной = CanvasSmi.ActiveForm как CanvasSmi;

Итак, я произнес его, и теперь он работает как шарм: D Я ценю все идеи, хотя, наконец, получил его через 12 часов ха-ха.

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