-2

コンボボックス、テキストボックス、および多くの行を持つデータグリッドを含むフォームがあります。(生成されたバーコード[画像としてバーコードを生成するアプリケーション]を使用して)印刷し、そのページのデータをCSV / XML/Excel形式でUSBまたは電話の物理ディレクトリにエクスポートしたい。その方法を教えてください。これは私の最初のWindowsモバイルアプリです。私はWindowsMo​​bileではそれほど賢明ではありません。コードまたはリンクとしてより良い解決策を見つけるのを手伝ってください、または単に私に指示してください。

4

1 に答える 1

0

Print Out を作成するには、GDI を使用して PrintDocument に書き込む必要があります。実際には何も組み込まれていません。スクリーンショットを作成できます (以下のコード)。

CSV へのデータのエクスポートも、自分で行うのが最適です。ファイルストリームを作成/開き、必要なものを書き込むだけです。

スクリーンショット: BitBlt および GetDC への PInvoke が必要

const int SRCCOPY = 0x00CC0020;

[DllImport("coredll.dll")]
private static extern int BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, uint dwRop);

[DllImport("coredll.dll")]
private static extern IntPtr GetDC(IntPtr hwnd);

public Bitmap ScreenCapture(string fileName) {
  Bitmap bitmap = new Bitmap(this.Width, this.Height);
  using (Graphics gScr = Graphics.FromHdc(GetDC(IntPtr.Zero))) { // A Zero Pointer will Get the screen context
    using (Graphics gBmp = Graphics.FromImage(bitmap)) { // Get the bitmap graphics
      BitBlt(gBmp.GetHdc(), 0, 0, this.Width, this.Height, gScr.GetHdc(), this.Left, this.Top, SRCCOPY); // Blit the image data
    }
  }
  bitmap.Save(fileName, ImageFormat.Png); //Saves the image
  return bitmap;
}

[アップデート]:

  • 画像を特定の場所に保存する場合は、ファイル名を付けたフル パス (例: \\Windows\Temp\screenShot.png) を送信します。

  • コントロールを除外する場合は、機能する領域に収まるサイズになるまで、、、this.Widthおよびを縮小します。this.Heightthis.Leftthis.Right

  • 最後に、Bitmapをメモリ内で使用する場合は、単純に保存して必要に応じて使用します。例:

    panel1.Image = ScreenCapture("image.png"); panel1.BringToFront();

それが役立つことを願っています。

于 2011-10-19T14:27:33.317 に答える