none
vb.net getsetting问题 RRS feed

  • 问题

  •  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

     

            SaveSetting("MyApp", "User", "Name", checkbox1)

     End Sub

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

      GetSetting("MyApp", "User", "Name")

        End Sub

    出现错误,“Value of type 'String' cannot be converted to 'System.Windows.Forms.CheckBox'。”

    我有试过换成checkbox1.tostring ,虽然没有错误但却不能读取checkbox1的值?


    2010年8月17日 15:46

答案

  • 你好

    這可能是因而你的

    GetSetting("MyApp", "User", "Name") 內容已經是STRING [文字]

    所以每當你 開啟這個FORM 時 運行 CHECK() 時 便會出現 錯誤

    你可以嘗試更改你的code 到以下

    Private Sub Check()

    Try

     CheckBox1.Checked = Convert.ToBoolean(GetSetting("MyApp", "User", "Name"))

    Catch ex As Exception

    End Try

    End Sub.

    或者把

    GetSetting("MyApp", "User", "Name")

    SaveSetting("MyApp", "User", "Name", CheckBox1.Checked)

    改用另一個Key 名

    E.G.

    GetSetting("MyApp", "User", "Name2")

    SaveSetting("MyApp", "User", "Name2", CheckBox1.Checked)

    這樣應該可以解決這個問題

    我會建議使用Try and Catch Statement, 這樣可以保留Key 的名和 當按button1 時 你新的Value 便會取締原有的[應該是String ] 的value

    Please correct me if my concept is wrong


    Chi
    2010年8月19日 7:35
    版主

全部回复

  • 你好

    或者你可以嘗試

    SaveSetting("MyApp", "User", "Name", checkbox1.Checked)

     

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

      checkbox1.Checked = GetSetting("MyApp", "User", "Name")

    checkbox1.Checked = Convert.ToBoolean(GetSetting("MyApp", "User", "Name"))

        End Sub

    Please correct me if my concept is wrong


    Chi
    2010年8月17日 16:11
    版主
  • 你好

    或者你可以嘗試

    SaveSetting("MyApp", "User", "Name", checkbox1.Checked)

     

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

      checkbox1.Checked = GetSetting("MyApp", "User", "Name")

    checkbox1.Checked = Convert.ToBoolean(GetSetting("MyApp", "User", "Name"))

        End Sub

    Please correct me if my concept is wrong


    Chi

    两个方法都不能

    出现错误“String was not recognized as a valid Boolean.”和“Conversion from string "System.Windows.Forms.TextBox, Te" to type 'Boolean' is not valid.”

    2010年8月18日 0:47
  • 你好

    你可不可以提供你的APPLIATION 的CODE 和 那段CODE 出現
    出现错误“String was not recognized as a valid Boolean.”和“Conversion from string "System.Windows.Forms.TextBox, Te" to type 'Boolean' is not valid.”
    因為看來, 這應該不是

     

    SaveSetting("MyApp", "User", "Name", checkbox1.Checked)


    checkbox1.Checked = Convert.ToBoolean(GetSetting("MyApp", "User", "Name"))
    出現的吧, 因為他是CHECKBOX,
    CHECKBOX.CHECKED 會RETURN TRUE/FALSE
    所以 上面的CODE 應該是合法的

    你的ERROR MESSAGE 上有提到

    Conversion from string "System.Windows.Forms.TextBox, Te" to type 'Boolean' is not valid.

    應該是你想由TEXTBOX 中轉他的內容做BOOLEAN
    E.G> "ABC" 轉做BOOLEAN
    所以出現問題

    Please correct me if my concept is wrong

     


    Chi
    2010年8月18日 4:35
    版主
  • 你好

    你可不可以提供你的APPLIATION 的CODE 和 那段CODE 出現
    出现错误“String was not recognized as a valid Boolean.”和“Conversion from string "System.Windows.Forms.TextBox, Te" to type 'Boolean' is not valid.”
    因為看來, 這應該不是

     

    SaveSetting("MyApp", "User", "Name", checkbox1.Checked)


    checkbox1.Checked = Convert.ToBoolean(GetSetting("MyApp", "User", "Name"))
    出現的吧, 因為他是CHECKBOX,
    CHECKBOX.CHECKED 會RETURN TRUE/FALSE
    所以 上面的CODE 應該是合法的

    你的ERROR MESSAGE 上有提到

    Conversion from string "System.Windows.Forms.TextBox, Te" to type 'Boolean' is not valid.

    應該是你想由TEXTBOX 中轉他的內容做BOOLEAN
    E.G> "ABC" 轉做BOOLEAN
    所以出現問題

    Please correct me if my concept is wrong

     


    Chi
        Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            check()
        End Sub

        Private Sub check()
            CheckBox1.Checked = Convert.ToBoolean(GetSetting("MyApp", "User", "Name"))
        End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            SaveSetting("MyApp", "User", "Name", CheckBox1.Checked)
        End Sub
    2010年8月18日 8:59
  • 你单步跟踪一下看,到底是那句出错
    http://feiyun0112.cnblogs.com/
    2010年8月18日 9:10
    版主
  • 你好

    這可能是因而你的

    GetSetting("MyApp", "User", "Name") 內容已經是STRING [文字]

    所以每當你 開啟這個FORM 時 運行 CHECK() 時 便會出現 錯誤

    你可以嘗試更改你的code 到以下

    Private Sub Check()

    Try

     CheckBox1.Checked = Convert.ToBoolean(GetSetting("MyApp", "User", "Name"))

    Catch ex As Exception

    End Try

    End Sub.

    或者把

    GetSetting("MyApp", "User", "Name")

    SaveSetting("MyApp", "User", "Name", CheckBox1.Checked)

    改用另一個Key 名

    E.G.

    GetSetting("MyApp", "User", "Name2")

    SaveSetting("MyApp", "User", "Name2", CheckBox1.Checked)

    這樣應該可以解決這個問題

    我會建議使用Try and Catch Statement, 這樣可以保留Key 的名和 當按button1 時 你新的Value 便會取締原有的[應該是String ] 的value

    Please correct me if my concept is wrong


    Chi
    2010年8月19日 7:35
    版主