Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.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#_C#_Forms_Winforms_Button - Fatal编程技术网

我可以在可以分配给特定事件/操作的表单中加载不同的表单吗?C#

我可以在可以分配给特定事件/操作的表单中加载不同的表单吗?C#,c#,forms,winforms,button,C#,Forms,Winforms,Button,我正在制作一个windows窗体应用程序,我有一个窗体代表一个基本窗体,它从不同的类获取数据(这几乎就像一个数据库): 注意:这段代码之所以是以_-Load的形式出现,是因为它没有出现,除非我把它放在那里,我觉得很奇怪,但它可能没有出现 我有一个主窗体,它就像一个菜单——它有四个按钮,所有的按钮都指向基础窗体。实际上,数据库类应该根据主窗体(菜单)中选择的按钮更改基本窗体中控件的名称。基本窗体比主窗体有更多的按钮 因为这让人困惑,下面是我想做的一个例子:如果菜单上有选项(按钮)莫扎特、贝多芬、李

我正在制作一个windows窗体应用程序,我有一个窗体代表一个基本窗体,它从不同的类获取数据(这几乎就像一个数据库):

注意:这段代码之所以是以_-Load的形式出现,是因为它没有出现,除非我把它放在那里,我觉得很奇怪,但它可能没有出现

我有一个主窗体,它就像一个菜单——它有四个按钮,所有的按钮都指向基础窗体。实际上,数据库类应该根据主窗体(菜单)中选择的按钮更改基本窗体中控件的名称。基本窗体比主窗体有更多的按钮

因为这让人困惑,下面是我想做的一个例子:如果菜单上有选项(按钮)莫扎特、贝多芬、李斯特、肖邦——当人们点击莫扎特时,他们应该会得到带有他作品名称的按钮,如果他们点击贝多芬,他们就会得到他的作品,等等。(如果重要/有用的话,基本表单中的这些按钮确实会导致其他内容)。我之所以不为这些菜单按钮制作单独的表单,是因为我有很多按钮,但我认为制作大量表单并不理想(这是一个简单的应用程序,我不想用大量表单来降低速度)

我的问题是这样做的最佳方式是什么?我是否必须以某种方式将我想要的数据分配给菜单(主窗体)中的按钮(鼠标)单击事件?是否有可能在基本窗体中有不同的窗体加载,可以分配给菜单中的鼠标单击


谢谢您的时间。

请求的示例构造函数-表单有一个由构造函数填充的
richTextBox
,还有一个
字符串
值,稍后使用:

public partial class Form2 : Form
{
    public string _filename;

    public Form2(string text, string filename)
    {
        InitializeComponent();
        richTextBox1.Text = text;
        _filename = filename;
    }
}
从主窗体创建此窗体的实例:

private void button1_Click(object sender, EventArgs e)
    {
      string textForRTB = "Some text";
      string valueForFilename = "\some\file\name";  
      Form2 frm2 = new Form2(textForRTB, valueForFilename);
      frm2.Show();
    }

为什么你认为在一个应用程序中有很多表单会让它慢下来?@GuidoG事实上,以前我有一个有很多表单的应用程序,它很难运行。但是,如果我要制作单独的表单,这个应用程序将有200个彼此非常相似的表单,所以我正试图通过继承和数据库来减少数量,基于所选按钮的基本表单加载中的不同信息将成为应用程序的一大组成部分,除非有更好的方法,我不知道?我当前的winform应用程序有大约150个表单,它不会减慢速度。这肯定是另一个原因,也许你在启动应用程序时加载了所有表单如果你的表单非常相似,那么视觉继承就是最好的选择。我就是这么做的it@GuidoG好的,我来试试。谢谢。您可以向子窗体的构造函数添加参数来传递上下文。
private void button1_Click(object sender, EventArgs e)
    {
      string textForRTB = "Some text";
      string valueForFilename = "\some\file\name";  
      Form2 frm2 = new Form2(textForRTB, valueForFilename);
      frm2.Show();
    }