找回密码
 立即注册

QQ登录

只需一步,快速开始

不停息的翔龙

银牌会员

19

主题

107

帖子

3754

积分

银牌会员

积分
3754

活字格认证

不停息的翔龙
银牌会员   /  发表于:2015-5-8 08:39  /   查看:11177  /  回复:13
执行此语句时, TextControl_record.Load(buffByte, 512)
新建位图图像.jpg (15.47 KB, 下载次数: 308)

13 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2015-5-8 10:53:00
沙发
回复 1楼不停息的翔龙的帖子

问题已经查收,根据当前错误信息提示是在 TextControl 对象没有加载完成的时机调用了 TX 实例方法。请问当前的加载时机是?

我这边也会模拟1# 代码做测试,看能否重现问题。稍后反馈给你。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-8 11:08:00
板凳
回复 1楼不停息的翔龙的帖子

通过附件demo在 WPF Window.Loaded 事件中加载 byte() 字节流没有重现这个问题,关键代码如下:
  1.     Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs)
  2.         Dim filename As String = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..\\..\\test.tx")
  3.         Dim stream As FileStream = File.Open(filename, FileMode.Open)

  4.         Dim bytes() As Byte = New Byte(stream.Length) {}
  5.         stream.Read(bytes, 0, bytes.Length)

  6.         Me.tx1.Load(bytes, TXTextControl.BinaryStreamType.InternalFormat)
  7.     End Sub
复制代码


详细请参考demo看能否解决你的问题,如果没有解决请提供更多调查信息给我们进一步研究:
VS2013 + VB.NET + .NET 4.0
16953.zip (138.64 KB, 下载次数: 319)
回复 使用道具 举报
不停息的翔龙
银牌会员   /  发表于:2015-5-8 14:08:00
地板
tx控件在一个tabcontrol 的一个item页中,在此页,gotfous 事件中 加载文件流,提示上面错误
回复 使用道具 举报
不停息的翔龙
银牌会员   /  发表于:2015-5-8 14:09:00
5#
回复 3楼iceman的帖子

tx控件在一个tabcontrol 的一个item页中,在此页,gotfous 事件中 加载文件流,提示上面错误
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-8 14:38:00
6#
回复 5楼不停息的翔龙的帖子

修改了 3# demo,仍然没有重现问题:
关键代码:

  1.     Private Sub TabItem_GotFocus(sender As Object, e As RoutedEventArgs)

  2.         Dim filename As String = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..\\..\\test1.tx")
  3.         Dim stream As FileStream = File.Open(filename, FileMode.Open)

  4.         Dim bytes() As Byte = New Byte(stream.Length) {}
  5.         stream.Read(bytes, 0, bytes.Length)

  6.         Me.tx1.Load(bytes, TXTextControl.BinaryStreamType.InternalFormat)

  7.         stream.Close()
  8.     End Sub
复制代码


效果图:
Demo1.gif

Demo:
16953.zip (140.13 KB, 下载次数: 322)
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-8 14:42:00
7#
回复 5楼不停息的翔龙的帖子

请您在 6# demo 基础上参考调查,如果没有解决问题,请在 Demo 基础上修改后发到论坛上我们调查。

经过长时间的论坛沟通,我们之前的沟通基本顺畅,感谢您长时间以来的支持和理解。

如果在发布问题是能够提供更多的调查信息,这样既能减少沟通次数,也能加快问题的处理。例如这个问题,如果您能在首次提问通知我们是使用了tab的gotfocus 事件出现问题,那么将对这个问题的推进起到很大的帮助。

谢谢
回复 使用道具 举报
不停息的翔龙
银牌会员   /  发表于:2015-5-8 15:45:00
8#
回复 7楼iceman的帖子

在 窗口的 load事件中,直接加 你tx那个item页.focus,也就是加载后直接跳到那页,出错
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-8 16:50:00
9#
回复 8楼不停息的翔龙的帖子

TX 有自己的 Loaded 标志位机制,所以需要在 tx loaded 事件中使用 Dispatcher.BeginInvoke 事件来加载字节流:

  1.     Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs)
  2.         tabControl1.Items(1).Focus()
  3.     End Sub

  4.     Private Sub TabItem_GotFocus(sender As Object, e As RoutedEventArgs)
  5.     End Sub

  6.     Private Sub tx1_Loaded(sender As Object, e As RoutedEventArgs) Handles tx1.Loaded
  7.         tx1.Dispatcher.BeginInvoke(New Action(AddressOf LoadFile))
  8.     End Sub

  9.     Private Sub LoadFile()
  10.         Dim filename As String = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..\\..\\test1.tx")
  11.         Dim stream As FileStream = File.Open(filename, FileMode.Open)

  12.         Dim bytes() As Byte = New Byte(stream.Length) {}
  13.         stream.Read(bytes, 0, bytes.Length)

  14.         Me.tx1.Load(bytes, TXTextControl.BinaryStreamType.InternalFormat)

  15.         stream.Close()

  16.     End Sub
复制代码


Demo:
16953.zip (140.26 KB, 下载次数: 313)
回复 使用道具 举报
不停息的翔龙
银牌会员   /  发表于:2015-5-8 17:28:00
10#
回复 9楼iceman的帖子

不是加载一个类型的文档就完了,,在窗口LOAD里要加载判断N种类型的文档,是哪种 加载哪种,你这个在TX的load也写死了,即使往里传参数也很麻烦啊!!!!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部