gpt4 book ai didi

winforms - 在Form构造函数中传递参数,winforms c#

转载 作者:行者123 更新时间:2023-12-04 23:59:11 24 4
gpt4 key购买 nike

我有以下继承层次结构:

A类:表格
B级:A级

A 类需要能够接受一个参数,以便我可以像这样创建 B 类的实例:

ClassB mynewFrm = new ClassB(param);

如何在 A 类中定义这样的构造函数?

谢谢!

我在 .net 3.5、c# 中使用 Winforms

编辑:
A 类和 B 类被定义为表单,使用部分类。
所以我想这变成了一个关于部分类和自定义(覆盖)构造函数的问题。

最佳答案

这是一个完整的演示示例,用于演示所需的行为。

为了方便大家学习,我选择了字符串 您根据情况调整的类型参数。

要测试它,请创建一个新的 Visual Studio *C#* 项目和填充 程序.cs 使用以下代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace Stackoverflow
{

public class ClassA : Form
{
public ClassA()
{
InitializeComponent();
}

public ClassA(string WindowTitleParameter)
{
InitializeComponent();
this.Text = WindowTitleParameter;
MessageBox.Show("Hi! I am ClassB constructor and I have 1 argument. Clic OK and look at next windows title");
}

private void InitializeComponent() // Usually, this method is located on ClassA.Designer.cs partial class definition
{
// ClassA initialization code goes here
}

}

public class ClassB : ClassA
{
// The following defition will prevent ClassA's construtor with no arguments from being runned
public ClassB(string WindowTitleParameter) : base(WindowTitleParameter)
{
InitializeComponent();
//this.Text = WindowTitleParameter;
//MessageBox.Show("Hi! I am ClassB constructor and I have 1 argument. Clic OK and look at next windows title");
}

private void InitializeComponent() // Usually, this method is located on ClassA.Designer.cs partial class definition
{
// ClassB initialization code goes here
}

}

static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

// If you debug this code using StepInto, you will notice that contructor of ClassA (argumentless)
// will run prior to contructor of classB (1 argument)

Application.Run(new ClassB("Look at me!"));
}
}
}

关于winforms - 在Form构造函数中传递参数,winforms c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12753947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com