Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Windows窗体中用一个按钮控制多个用户控件?_C#_Forms_User Controls - Fatal编程技术网

C# 如何在Windows窗体中用一个按钮控制多个用户控件?

C# 如何在Windows窗体中用一个按钮控制多个用户控件?,c#,forms,user-controls,C#,Forms,User Controls,我有一个表单可以动态创建用户控件,每个用户控件都有一个开始按钮和一个停止按钮。有没有办法在表单上设置“全部启动”和“全部停止”按钮 我尝试在单击主窗体按钮时将布尔值设置为true,但一旦创建了用户控件,它就不会检查布尔值 以下是主窗体的代码(vdoPlayer是用户控件): 我不知道在Form1的按钮单击事件中放入什么来控制其余的。正如我之前所说,我尝试使用布尔值,但没有成功。这可能吗 首先,vdoPlayer需要公开此功能,以便其他对象调用。大概是这样的: public void StartV

我有一个表单可以动态创建用户控件,每个用户控件都有一个开始按钮和一个停止按钮。有没有办法在表单上设置“全部启动”和“全部停止”按钮

我尝试在单击主窗体按钮时将布尔值设置为true,但一旦创建了用户控件,它就不会检查布尔值

以下是主窗体的代码(vdoPlayer是用户控件):


我不知道在Form1的按钮单击事件中放入什么来控制其余的。正如我之前所说,我尝试使用布尔值,但没有成功。这可能吗

首先,
vdoPlayer
需要公开此功能,以便其他对象调用。大概是这样的:

public void StartVideo()
{
    Player1.VideoSource.Start();
}

public void StopVideo()
{
    Player1.VideoSource.Stop();
}
(一旦这些方法就位,该类的单击处理程序和其他功能应该使用这些方法,而不是直接调用
VideoSource
上的
Start()
Stop()

此外,表格应保留其所有相关控件的列表。像这样的事情应该可以做到:

public partial class Form1 : Form
{

    private List<vdoPlayer> videoPlayers;

    public Form1()
    {
        InitializeComponent();
        videoPlayers = new List<vdoPlayer>();
        DisplayImage();
    }

    // etc.
}
public void StartVideo()
{
    Player1.VideoSource.Start();
}

public void StopVideo()
{
    Player1.VideoSource.Stop();
}
public partial class Form1 : Form
{

    private List<vdoPlayer> videoPlayers;

    public Form1()
    {
        InitializeComponent();
        videoPlayers = new List<vdoPlayer>();
        DisplayImage();
    }

    // etc.
}
private void StartAllBut_Click(object sender, EventArgs e)
{
    foreach (var videoPlayer in videoPlayers)
        videoPlayer.StartVideo();
}

private void StopAllBut_Click(object sender, EventArgs e)
{
    foreach (var videoPlayer in videoPlayers)
        videoPlayer.StopVideo();
}