【问题标题】:Make normal textbox behave like InputBox使普通文本框表现得像 InputBox
【发布时间】:2015-10-26 00:47:32
【问题描述】:

我正在使用 Visual Studio Express for Windows Desktop,我想制作一个应用程序,将多个问题一一放入多行文本框中,并由用户回答。所以我做了一个多行文本框,下面有一个单行文本框(就像一个聊天客户端)

我希望单行文本框的行为类似于输入框功能(但没有弹出窗口)

更具体一点;我想编写一个函数来清除程序中的单行文本框,等待用户输入他的文本并按回车键,然后将输入的文本返回给调用代码,这样我就可以处理输入并继续.

到目前为止,我无法在 VB 或 C# 中正确使用它,欢迎使用 vb 或 c# 中的解决方案 :) 如果我可以将它放入可以重用的用户控件中,那将是什至更好。

有没有办法做到这一点?提前感谢您的帮助。

【问题讨论】:

  • 您需要在此处发布代码以获得有用的答案。尝试在输入文本框的 KeyDown 中添加一些代码,检查 e.KeyCode 是否返回,使用事件 .AppendText() 到目标多行文本框。

标签: c# vb.net wpf-controls


【解决方案1】:

我还没有代码,但我创建了一个(愚蠢的)示例代码来展示我想要做什么。

在主窗口中,我创建了一个开始按钮、一个名为 OutputText 的大多行文本框和一个名为 InputText 的单行文本框。 outputText 将向用户显示我的文本,而 InputText 应处理用户给出的答案。

当我使用 InputBox 时,它的工作原理如下:

    Private Sub StartButton_Click(sender As Object, e As RoutedEventArgs) Handles StartButton.Click
    Dim MyFirstName As String
    Dim MyLastName As String
    OutputText.Text = ""
    OutputText.AppendText("What is your first name?" + vbCrLf)
    MyFirstName = InputBox("")
    OutputText.AppendText("And what is your last name?" + vbCrLf)
    MyLastName = InputBox("")
    OutputText.AppendText("Hello " + MyFirstName + " " + MyLastName + "!" + vbCrLf)

End Sub

现在我想使用我自己的文本框而不是那个烦人的弹出 InputBox 来做同样的事情,到目前为止我没有任何线索,除了我可能必须创建自己的函数才能使其工作。 我希望以上内容能更好地解释我的问题。

【讨论】:

    猜你喜欢
    • 2014-01-18
    • 2021-09-12
    • 2020-05-29
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多