我有我的媒體播放器項目中的2表單我已經使from1(父窗體)的對象,並從form1 form3中獲得價值。但我也需要從form3到form1的變量值。但問題是,當我做form3的對象在Form1這樣從孩子獲得價值從父母形式
Form3 m_child;
public Form1(Form3 frm3)
{
InitializeComponent();
m_child = frm3;
}
它顯示在的Program.cs是1跳轉不包含包含0參數構造錯誤。我知道我必須通過那裏的參數Application.Run(new Form1());
但我應該通過我不知道。 PLZ幫助如果有任何解決方案或任何其他方式從兒童獲得價值父母的形式。
這是我form3代碼現在我想用smileplay,surpriseplay,sadplay,normalplay,ambiguousplay的價值在Form1
Form1 m_parent;
public Form3(Form1 frm1)
{
InitializeComponent();
m_parent = frm1;
}
private void Form3_Load(object sender, EventArgs e)
{
WMPLib.IWMPPlaylistArray allplaylist= m_parent.axWindowsMediaPlayer1.playlistCollection.getAll();
for (int litem = 0; litem < allplaylist.count; litem++)
{
smilecombo.Items.Add(allplaylist.Item(litem).name);
surprisecombo.Items.Add(allplaylist.Item(litem).name);
sadcombo.Items.Add(allplaylist.Item(litem).name);
normalcombo.Items.Add(allplaylist.Item(litem).name);
ambiguouscombo.Items.Add(allplaylist.Item(litem).name);
}
}
private void savebtn_Click(object sender, EventArgs e)
{
WMPLib.IWMPPlaylist smileplay= m_parent.axWindowsMediaPlayer1.playlistCollection.getByName(smilecombo.SelectedItem.ToString()).Item(0);
WMPLib.IWMPPlaylist surpriseplay = m_parent.axWindowsMediaPlayer1.playlistCollection.getByName(surprisecombo.SelectedItem.ToString()).Item(0);
WMPLib.IWMPPlaylist sadplay = m_parent.axWindowsMediaPlayer1.playlistCollection.getByName(sadcombo.SelectedItem.ToString()).Item(0);
WMPLib.IWMPPlaylist normalplay = m_parent.axWindowsMediaPlayer1.playlistCollection.getByName(normalcombo.SelectedItem.ToString()).Item(0);
WMPLib.IWMPPlaylist ambiguousplay = m_parent.axWindowsMediaPlayer1.playlistCollection.getByName(ambiguouscombo.SelectedItem.ToString()).Item(0);
}
請參閱[我的答案](http://stackoverflow.com/a/15389047/2109503)到以前的問題。它將允許您訪問表單,而無需父母/孩子的必要性。具體的例子只是爲了提高可視性,你可以很容易地返回'TForm表單'或者只是使用這個概念。 – 2013-03-15 16:04:02
這不起作用,因爲Form3也沒有0參數構造函數。 最簡單的事情 - 做一個沒有Form3參數的Form1的構造函數。 – 2013-03-15 16:04:57