找回密码
 立即注册

QQ登录

只需一步,快速开始

qingtong1166

注册会员

13

主题

40

帖子

113

积分

注册会员

积分
113
qingtong1166
注册会员   /  发表于:2016-12-7 06:51  /   查看:3186  /  回复:5
如题。

5 个回复

倒序浏览
gw0506
超级版主   /  发表于:2016-12-7 09:31:45
沙发
我需要看你保存和加载的代码。
出现?应该是字符编码集的问题。
回复 使用道具 举报
qingtong1166
注册会员   /  发表于:2016-12-8 21:22:56
板凳
插入复选框的代码:
        TextControl1.Selection.FontName = "Arial Unicode MS"
        'UNCHECKED = UnicodeHexToString("\\u2610")
        'CHECKED = UnicodeHexToString("\\u2714")
        ' 通过特殊的适配器类型创建一个复选框
        Dim clsCheckBox As TXTextControl.DocumentServer.Fields.FormCheckBox = New TXTextControl.DocumentServer.Fields.FormCheckBox()
        clsCheckBox.Text = UNCHECKED
        'clsCheckBox.Text = "clsCheckBox.Text = UNCHECKED;";
        clsCheckBox.Enabled = True
        clsCheckBox.ApplicationField.Editable = True
        clsCheckBox.ApplicationField.DoubledInputPosition = True

        ' 将 ApplicationField 添加到文档中
        TextControl1.ApplicationFields.Add(clsCheckBox.ApplicationField)单击事件:
        Private Sub TextControl1_TextFieldClicked(ByVal sender As System.Object, ByVal e As TXTextControl.TextFieldEventArgs) Handles TextControl1.TextFieldClicked
        Dim field As TXTextControl.ApplicationField = CType(e.TextField, TXTextControl.ApplicationField)
        If Not field Is Nothing Then
            If field.TypeName = "FORMCHECKBOX" Then
                Dim chkb As TXTextControl.DocumentServer.Fields.FormCheckBox = New TXTextControl.DocumentServer.Fields.FormCheckBox(field)
                If chkb.Enabled = False Then Exit Sub
                If field.Text = UNCHECKED Then

                    chkb.Checked = True
                    chkb.Text = CHECKED

                ElseIf (field.Text = CHECKED) Then

                    chkb.Checked = False
                    chkb.Text = UNCHECKED
                End If

            End If
            End If
    End Sub
保存到数据库:
        Dim strData As Byte()
        Me.TextControl1.Save(strData, TXTextControl.BinaryStreamType.InternalFormat)
         Dim newRow As DataRow
                newRow = dt.Rows.Add
                newRow.Item("templetID") = Me.TextBox1.Text
                newRow.Item("templetclass") = ComboBox1.Text
                newRow.Item("templetname") = TextBox3.Text
                newRow.Item("templetText") = sData
      ....
从数据库调入:
     sData=dt.rows(0).Item("templettext")
      Me.TextControl1.Load(sData, TXTextControl.BinaryStreamType.InternalFormat)

回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-12-9 11:47:21
地板
UnicodeHexToString  这个方法是啥,哪里来的。其他代码没啥问题,现在就换一这个有问题。你在测一测。
回复 使用道具 举报
qingtong1166
注册会员   /  发表于:2016-12-9 14:24:02
5#

UNCHECKED = UnicodeHexToString("\\u2610")
CHECKED = UnicodeHexToString("\\u2714")
...
Private Function UnicodeHexToString(ByVal text As String) As String
        'returns the string representation
        Dim myText As String
        myText = System.Text.Encoding.Unicode.GetString(BitConverter.GetBytes(Short.Parse(text.Substring(3), System.Globalization.NumberStyles.HexNumber)))
        'Return System.Text.Encoding.Unicode.GetString(BitConverter.GetBytes(Short.Parse(Text.Substring(2), System.Globalization.NumberStyles.HexNumber)))
        Return myText
    End Function
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-12-9 14:45:13
6#
你存进去的就是encoding过的,再读出来没有做处理,就成?了,应该就这个原因。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部