Solved

How do I accept a User Input from multiple forms using the same "Input form"?

Posted on 2007-11-25
5
178 Views
Last Modified: 2010-04-23
I want to have the user be able to click in any text box and when they do, a "User Input" keyboard will pop-up and they can Enter in a value (the program is going to be running on a touch screen with no keyboard, so on-screen keyboard is required). The value they enter will appear in a text box on the "User Input" form. When they hit accept, I want that value to be transfered to the textbox on the form in which they originally clicked in. I want the "User Input" keyboard to be able to be used multiple times throughout the program, and Ideally I just want to have to call a sub-routine or function when the user "Enters" the text box in which they want to type in.

I have tried this multiple ways and can't seem to get it working correctly. It kind of works, but not like I would hope.  I wish I still had my original code, but i have been tinkering with it; and It's pretty messed up at the moment. A basic concept of what i was doing is:

---------------------------------
Form1

txt_textbox (on Enter event)

txt_textbox.text = Module1.UserInput



-------------------------
Module1

Public UserInputValue as String

Public Function UserInput

frm_UserInput.Show
frm_Userinput.TopMost = True

UserInput = UserInputValue

UserInputValue = Nothing

End Function


-------------------------
frm_UserInput


btn_Accept.Click

UserInputValue = txt_Value.Text
txt_Value.Text =""
Me.Close()

--------------------------

This would work kind of. It was like it would sometimes work and others not. Especially the first textbox i would try would usually fail. The textboxes after that seemed to work just fine.

I know there is an easy way of doing what I'm trying to do, Any ideas/suggestions?
0
Comment
Question by:Gssc1414
  • 3
  • 2
5 Comments
 
LVL 3

Author Comment

by:Gssc1414
ID: 20347552
Or at least I would think there is an easy way, and im just thinking too much into it.
0
 
LVL 3

Author Comment

by:Gssc1414
ID: 20347691
Hmm... I think i may have figured out a good way of doing it.

1. Defined a "textbox" variable publically.

2. Set the variable to the texbox that i want text to appear in.

3. Set the Variables ".text" property when the user hits the accept button to what is in the UserInput text box.

Below is my code:

Is this a good/recommeneded way of doing it?
    Private Sub txt_CurrentBladeRPM_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_CurrentBladeRPM.Enter
 
        txtBox = Me.txt_CurrentBladeRPM
        frm_UserInput.Show()
 
 
    End Sub
 
 
 
Module SAW
    Public SupervisorLoginCache As Boolean
    Public LoggedInUser As String
    Public UserInputValue As String
    Public txtBox As TextBox
 
End Module
 
 
    Private Sub btn_Accept_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Accept.Click
 
        txtBox.Text = txt_Value.Text
        txt_Value.Text = ""
        Me.Close()
 
    End Sub

Open in new window

0
 
LVL 11

Accepted Solution

by:
AkisC earned 500 total points
ID: 20350203
What I'd reccoment is...
 a global variable on the "UserInput" form
    Public pub_userInput as string=""

 Private Sub btn_Accept_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Accept.Click
 
        txtBox.Text = txt_Value.Text
        pub_userInput= txt_Value.Text  '//assuming this is the value your user has typed.
        Me.Close()
 
    End Sub

And you can use it like (from any form)

    Public Function getFormInput() As String
        Dim myText As String = ""

        Dim f As New formUserInput  '// assuming formUserInput is the form name
        f.ShowDialog()
        myText = f.pub_userInput  '// myText has the value of the user input
        f.close()

        If myText Is DBNull.Value Then myText = ""
        Return myText
    End Function
0
 
LVL 3

Author Comment

by:Gssc1414
ID: 20352011
Is there any benefit to do it the way you posted it over the solution I came upon above, or is it just the way that your used to / makes most since to you?

Thanks for the response, I am just wondering if there are any benefits (performance/scalability ect.) to your method.
0
 
LVL 11

Expert Comment

by:AkisC
ID: 20352724
Whatever fits you.
I find the way I posted easier to debug in the future.

Take care
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Creating an analog clock UserControl seems fairly straight forward.  It is, after all, essentially just a circle with several lines in it!  Two common approaches for rendering an analog clock typically involve either manually calculating points with…
Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

685 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question