【问题标题】:A hack to display listbox as one item in windows mobile 6.5在 windows mobile 6.5 中将列表框显示为一个项目的 hack
【发布时间】:2014-12-10 20:05:18
【问题描述】:

我正在为仓库开发一个 Windows 移动应用程序。由于已经实现了基本功能,我正在努力改进应用程序的整体外观。我在一些事情上苦苦挣扎,非常感谢任何帮助(我对 C# 还很陌生,但愿意学习:-)。

首先,我无法让被覆盖的 OnPaint 方法工作,甚至在模拟器上也无法工作,所以我想我错过了一些东西。除了这个,我还需要做什么吗? ::

      public partial class Form1 : Form {
         protected override void OnPaint(PaintEventArgs e) {
       base.OnPaint(e);
      /*some basic painting here */
      }}

第二个问题源于我试图将一个列表框选为“作为一个”。我不希望用户单击其中的特定项目,而只是单击整个列表框。为了给你一些想法,我想在列表中显示一些像这样的列表框:

有没有办法让它们像列表中的普通项目一样可供选择?

我无法解决这个问题,所以我尝试了不同的方法 --> 用这些列表框制作位图,然后将位图加载到列表中。

由于紧凑型框架没有像实体 (DrawToBitmap) 那样的内置简洁方法,我尝试了这种方法 (Pocket PC: Draw control to bitmap),但它没有任何好处 - 在让它“工作”之后,它发生了变化没有。 我也试过这个,从一个使用屏幕截图的代码 sn-p 中,也没有成功。

      System.Drawing.Bitmap destinationBmp = new System.Drawing.Bitmap(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width, 
             System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height);

         System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(destinationBmp);
         GraphicsEx gx = GraphicsEx.FromGraphics(g);
         //gx.CopyFromScreen(0, 0, 0, 0, Forms.Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
         //gx.CopyFromScreen(0, hehe.Top, 0, hehe.Bottom + 10, hehe.Size, CopyPixelOperation.SourceCopy);

         gx.CopyGraphics(listbox, listbox.Bounds);
         g.DrawImage(destinationBmp, 0, 200);

我错过了什么?或者也许有更好的方法来做到这一点?

【问题讨论】:

    标签: c# winforms windows-mobile compact-framework opennetcf


    【解决方案1】:

    您可以创建所谓的所有者绘制的列表框。您可以控制绘图,并且可以在一个列表项中绘制多行文本供用户单击。如果我正确理解你的问题,我认为这会给你想要的结果。

    Here 是一个 MSDN 链接,指导您使用 Compact Framework 制作所有者绘制的列表框。

    如果这对您不起作用,那么您可以创建一个与 WPF StackPanel 对象非常相似的自定义控件。如果您不熟悉,StackPanel 允许您向其中添加子控件。 StackPanel 水平或垂直“堆叠”这些子控件。如果你实现了滚动和选择,你会有一个糟糕的 mans 列表框,它允许你将可变高度的自定义控件附加到每个列表框项而不是简单的字符串。我建议您先看看所有者绘制是否适合您,因为它涉及编写少得多的代码。

    【讨论】:

    • 那是我最终使用的方法,但我仍然无法让 OnPaint 覆盖无缘无故地工作:(
    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 2012-07-29
    • 2011-02-17
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    相关资源
    最近更新 更多