读取表单上所有控件的文本属性 [英] read text property of all controls on form

查看:80
本文介绍了读取表单上所有控件的文本属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





如何阅读表单上所有文本框和控件框的所有文本属性?

Wy做了如果不起作用?



Hi,

How can I read all the text properties of all the textboxes and controlboxes on my form?
Wy does the folowing not work?

For Each cntrl In Me.Controls
     If TypeOf cntrl Is TextBox Or TypeOf cntrl Is ComboBox Then
         FileString &= cntrl.Text & ","
     End If
 Next







或者:

我可以在我的代码中轻松插入控件的名称(我有大约30个控件)。它们是文本框和组合框的混合体。我想使用所选文本来构建一个commma分隔字符串。



亲切问候,




Alternatively:
Can I easely insert the names of the controls in my code (I have about 30 controls). They are a mix of textboxes and comboboxes. I want to use the selected text to build a commma seperated string.

Kind regards,

推荐答案

嗨Gert,





试试这个:



Hi Gert,


Try this :

For Each cntrl In Me.Controls
     If TypeOf cntrl Is TextBox Then
         FileString &= cntrl.Text & ","
     End If
     If TypeOf cntrl Is ComboBox Then
         FileString &= cntrl.SelectedValue.ToString & ","
     End If
 Next







BR,

VG




BR,
VG


抱歉,评论无法显示整个代码。 />
也许这有帮助。



sorry, the comment could not show the entire code.
Maybe this helps.

Imports Microsoft.Office.Interop
Imports System.IO 'Required for StreamReader & StreamWriter

Public Class appointmentcreator_form

    Dim myReader As StreamReader
    Dim myWriter As StreamWriter
    Dim listPreset As New List(Of String)
    Dim PresetName As String

    Private Sub appointmentcreator_form_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

        My.Settings.Reload()
        Preset_naamComboBox.Items.Add("<save as="" preset="">")
        Call ReadData()
        SaveFileDialog1.DefaultExt = "txt"

        cbxPeriodDays.SelectedIndex() = 0
        cbxPeriodHr.SelectedIndex() = 0
        cbxPeriodMin.SelectedIndex() = 0
        CbxdaysAfterFirst.SelectedIndex() = 0
        cbxHrAfterFirst.SelectedIndex() = 0
        cbxMinAfterFirst.SelectedIndex() = 0
        cbxStartMin.SelectedIndex() = 0
        cbxStartHr.SelectedIndex() = 0
        tbxSubject.Focus()

    End Sub

    Private Sub Preset_naamComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Preset_naamComboBox.SelectedIndexChanged
        If Preset_naamComboBox.SelectedIndex = 0 Then
            'Ask for Preset Name
Again:      PresetName = InputBox("Name Your PreSet then click OK", "Preset", "Preset#1", 300, 200)
            If PresetName = "" Or PresetName.Contains(",") Then
                MsgBox("Invalid Preset Name!" & vbCrLf & "Re-Enter Name!")
                GoTo Again
            Else
                Preset_naamComboBox.Items.Add(PresetName)
                Call SaveData(PresetName)
            End If
        Else
            'Get Preset Values and load in TextBoxes
            PresetName = CStr(Preset_naamComboBox.Items.Item(Preset_naamComboBox.SelectedIndex))
            Dim txtLine() As String = Split(listPreset.Item(Preset_naamComboBox.SelectedIndex - 1), ",")
            Dim index As Integer = 1
            For Each cntrl In Me.Controls
                If TypeOf cntrl Is TextBox Or TypeOf cntrl Is ComboBox Then
                    cntrl.text = txtLine(index)
                    index += 1
                End If
            Next
        End If
    End Sub
    Sub ReadData()
        If My.Settings.Filepath <> "" Then
            If My.Computer.FileSystem.FileExists(My.Settings.Filepath) = True Then
                myReader = New StreamReader(My.Settings.Filepath)
                Dim myText = myReader.ReadLine
                While myText IsNot Nothing
                    listPreset.Add(myText)
                    myText = myReader.ReadLine
                End While
                myReader.Close()
                'Add Preset Names to ComboBox, take first part of each line until first ","
                If listPreset.Count > 0 Then
                    Dim PresetName As String
                    Dim index As Integer
                    For i = 0 To listPreset.Count - 1
                        index = listPreset.Item(i).IndexOf(",")
                        PresetName = LSet(listPreset.Item(i), index)
                        Preset_naamComboBox.Items.Add(PresetName)
                    Next
                End If
            Else
                My.Settings.Filepath = ""
            End If
        End If
    End Sub
    Sub SaveData(ByVal PresetName As String)
        Dim FileString As String = PresetName & ","
        'Build File String with TextBox Data
        For Each cntrl In Me.Controls
            If TypeOf cntrl Is TextBox Or TypeOf cntrl Is ComboBox Then
                FileString &= cntrl.selectedvalue.ToString & ","
            End If
        Next

        'Check if FilePath exists
        If My.Settings.Filepath = "" Then
            If SaveFileDialog1.ShowDialog = DialogResult.OK Then
                My.Settings.Filepath = SaveFileDialog1.FileName
                My.Settings.Save()
                Call SaveFile()
            Else
                MsgBox("Save File Aborted" & vbCrLf & "Preset " & PresetName & " NOT saved")
                'Remove Preset from ComboBox and Preset List
                Preset_naamComboBox.Items.RemoveAt(Preset_naamComboBox.Items.Count - 1)
                listPreset.RemoveAt(listPreset.Count - 1)
            End If
        Else
            Call SaveFile()
        End If
    End Sub
    Sub SaveFile()
        myWriter = New StreamWriter(My.Settings.Filepath)
        For i = 0 To listPreset.Count - 1
            myWriter.WriteLine(listPreset.Item(i))
        Next
        myWriter.Close()
        MsgBox("Preset:  " & PresetName & " saved" & vbCrLf & "To File: " & My.Settings.Filepath)
    End Sub</save>


这篇关于读取表单上所有控件的文本属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆