2015-02-14 6 views
-1

У меня есть Form1, у которого есть инструментStripStatusLabel. Тогда Form2, у которого есть кнопка, и есть строка со значением (Hello). Мне нужно, если я нажму кнопку, покажу значение «Hello» на toolStripStatusLabel в Form1. toolStripStatusLabel настроен на публикацию. Это показывает мне:Как скопировать значение строки из формы2 в метку Form1

Не удается неявно преобразовать тип 'строка' в 'System.Windows.Forms.ToolStripLabel'

public partial class form2 : Form 
{ 
    public form2() 
    { 
     InitializeComponent(); 
    } 

    Form1 form = new Form1(); 
    string example = "hello"; 
    private void button1_Click(object sender, EventArgs e) 
    { 
     form.toolStripLabel1 = example; 
    } 
} 

}

+2

Вы пытаетесь определить 'form.toolStripLabel1.Text = example;' или что-то еще? –

+0

Да, моя ошибка, но кнопка не пишите привет в toolstrip – Lukas

ответ

0

Вы должны вас:

form.toolStripLabel1.Text = example; 

вместо o е:

form.toolStripLabel1 = example; 

И вы, возможно, захотите взглянуть на это: http://www.codeproject.com/Articles/14122/Passing-Data-Between-Forms Если вы хотите, чтобы обмениваться данными между 2 формами

+0

Вы правы, но кнопка не пишите привет в toolstrip – Lukas

+0

@Lukas Я изменил свой ответ, это может вам помочь –

0

Вы должны установить свойство Text в объекте ToolStripLabel.

form.toolStripLabel1.Text = example; 

Посмотрите на this.

+0

Вы правы, но кнопка не пишите привет to toolstrip – Lukas

+0

Вы должны заменить «Some text» тем, что вы хотите написать там. В этом случае примерная переменная. – AzzamAziz

+0

О, я точно не знаю, как это сделать. Можете ли вы мне помочь, пожалуйста? – Lukas

0

Ну, вам нужно сказать formtoolStripLabel1.Text = example;, а не то, что вы сказали. Однако это не повлияет на одно из исходного экземпляра Form1. Если вы хотите повлиять на исходный экземпляр Form1, вы должны сделать tooStripLabel public static, а не только public, чтобы все классы могли немедленно повлиять на него.

+0

Да, моя ошибка, но кнопка не пишет привет в toolstrip – Lukas

+0

Добавить 'public delegate void StringChange (string newstring);' вне класса. Затем внутри класса я бы добавил 'public StringChange StringChange', а затем в функции button_Click я бы поставил' StringChange (example); '. Поэтому я предполагаю, что вы открываете Form2 из Form1. В этом случае вы бы поставили 'Form2 form2 = new Form2();' form2.StringChange + = new StringChange (ChangeFunction); 'form2.ShowDialog();' и, наконец, создать void: 'private void ChangeFunction (строка input) {formtoolStripLabel1.Text = input;} ' – Rariolu

+0

Извините, если это немного грязно. – Rariolu