制作一个类似于Visual Basic的输入框

本文关键字:Basic Visual 输入 类似于 一个 | 更新日期: 2023-09-27 18:18:12

我已经创建了一个InputBox类,它返回一个字符串,但是我希望这个类在退出时返回一个字符串。

我希望它的行为完全像Visual Basic输入框。

现在,我已经将一个可变字符串值传递给构造函数并以这种方式更改它。但后来我意识到Visual Basic输入框要好得多。

myValue = InputBox(message, title, defaultValue)

如何像这样创建自己的InputBox类?我意识到我可以将VB的输入框导入c#,但我想创建自己的自定义输入框。

编辑:我想我对这一点如此着迷的原因是因为Visual Basic允许你调用一个函数而不输入类名。我希望在c#中有一种不用委托就能做到这一点的方法。我认为我的解决方案可能是创建一个函数封装我的形式。所以,也许我会把我的问题重新表述为,是否有一种方法,我可以返回一个值,通过一些东西,表现得像一个类?

制作一个类似于Visual Basic的输入框

假设Visual Basic InputBox是一个类是不正确的。事实上,它是一个函数。下面是方法定义:

Public Function InputBox( _
    ByVal Prompt As String, _
    Optional ByVal Title As String = "", _
    Optional ByVal DefaultResponse As String = "", _
    Optional ByVal Xpos As Integer = -1, _
    Optional ByVal YPos As Integer = -1 _
) As String

再深入一点,它作为Interaction类的一个方法驻留在Microsoft.VisualBasic.dll中。

最接近VB的模拟方法。. NET语法糖是隐式地将您的自定义InputBox转换为string,例如:

public class InputBox
{
    private string _title;
    public InputBox(string title)
    {
        _title = title;
    }
    public static implicit operator string(InputBox from)
    {
        return from._title;
    }
}
// .. elsewhere ..
 string title = new InputBox("Test");
 Console.WriteLine(title); // prints Test

. .虽然我不确定自己是否会这么做。

显然title就是一个例子。你的InputBox类将产生一个Form(或从它继承),并返回输入到表单。

. .我能问一下你为什么想要复制这个吗?