【问题标题】:PictureBox clearing when dragged out of screen boundries in Visual Studio 2013在 Visual Studio 2013 中拖出屏幕边界时清除 PictureBox
【发布时间】:2015-08-03 07:17:21
【问题描述】:

又是我,遇到了一个奇怪的问题。我创建了一个读取 xml 文件的代码,并使用 g.Drawstring 函数将排序后的 xml 文本发送到 pictureBox1。所以我进步了,使图片框可滚动并注意到了这个问题。当pictureBox 中的文本离开屏幕(不可见)时,当我滚动回它时,它就不再存在了。如果我只是将我的应用程序拖出屏幕,也会发生同样的情况,这样文本就会消失,文本会被删除,但是如果我再次加载我的程序(再次浏览 xml 文件)它会刷新,但这无济于事,因为我需要使文本始终存在。 这是我的代码的一部分,希望对您有所帮助:

     private void DrawInPictureBox(int index)
            {
                pictureBox1.Refresh();
                using (XmlReader reader = XmlReader.Create(openFileDialog1.FileNames.ElementAt(index)))
                 {
                     y = 0;
                     while (reader.Read())
                    {
                         if (reader.IsStartElement())
                         {
                             if (reader.Name == "Something")
                            {
                            string Dat = reader.GetAttribute("Dat");
                            Graphics g = pictureBox1.CreateGraphics();
                            if (reader.Read())
                            {
                                string m = reader.Value.Trim();

                                g.DrawString(m, new Font("Arial", 10), Brushes.Black, 0, y * 15 + 20);
                                g.DrawString(Dat + "ok", new Font("Arial", 10), Brushes.Black, 150, y * 15 + 20);
                                y = y + 1;
    }}}}}}

pictureBox 下面有一个面板,所以它是可滚动的,但即使没有面板,当离开屏幕时文本也会被删除。

谢谢!

【问题讨论】:

  • 另外,如果你能告诉我如何使用图片框来适应 xml 导入的字符串,那将很有用,所以它不是很大,你不能滚动 2 行文本到超越。 :)
  • 您可以使用Graphics.MeasureString 或TextRenderer.MeasureText 测量字符串

标签: c# visual-studio xmlreader


【解决方案1】:

几点:

  • 最好订阅PictureBox.OnPaint 事件并使用e.Graphics 来绘制XML 元素
  • 关于滚动,您的可滚动控件的位置可能仅在一个方向上移动,这使得它在屏幕上不可见。

尝试通过Console.WriteLine()或System.Debug.WriteLine()在输出窗口中写入scroll-X和scroll-Y位置的值来调试滚动位置,可能存在负值或超出边界值。 (在您的情况下,g.DrawString() 中的 y 的值)

【讨论】:

    猜你喜欢
    • 2012-12-22
    • 2014-01-11
    • 2012-03-10
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多