小编Ale*_*lex的帖子

如何在打印之前预先测量字符串?

这是纸质表格的草图 您好,我正在学习使用C#VS 2010 EE编程,我正在编写一个应用程序来填写预打印表单.这个表格在不同的坐标中有几个地方.纸上的三个盒子是多行5"W x 2"H盒子.

我已经创建了窗体,窗体上TextBox的每个位置都有一个窗口.

问题是,当在这些多行文本框中输入信息时,我需要知道在纸上留下多少行来输入更多文本,以及何时停止输入,因为PrePrinted框中没有更多可用空间.

我做了很多搜索,但我发现的一切都是关于在屏幕上进行测量,这与纸张上的最终结果不符.

换句话说,我需要知道如何在输入TextBoxes时找出纸张上的字符串尺寸,并将其与PrePrinted表单上的可用空间进行比较,这样我就可以在它经过之前停止纸盒上的底边框.

纸张上的第一个盒子的高度为5英寸,宽度为2英寸,从" new RectangleF(60.0F, 200.0F, 560.0F, 200.0F)" 开始.我明白这些数字是百分之一英寸.

所有这一切,考虑到我不能通过字符数限制TextBoxes,因为并非所有字符占用相同的空间,如H != I; M != l; 等.

预先感谢您的帮助.今天是2011年9月5日,基于您的意见和建议,我已将代码更改为使用Graphics.MeasureString.

这是我现在使用Graphics.MeasureString和只有一个richTextBox的代码:从printDocument1_PrintPage事件中完美地工作,但我不知道如何使它从richTextBox1_TextChanged事件中运行.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;//Needed for the PrintDocument()
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Printing
{
  public partial class Form1 : Form
  {
    private Font printFont1;
    string strPrintText;

    public Form1()
    {
      InitializeComponent();
    }

    private void cmdPrint_Click(object sender, EventArgs e)
    {
      try …
Run Code Online (Sandbox Code Playgroud)

c# printing string measure

6
推荐指数
1
解决办法
3801
查看次数

如何使用Math Ceiling RoundUp如何确定偶数奇数

我需要在预打印表单的两面打印DataGridView中的数据,但是:

  1. 每一方都有不同的信息安排.
  2. 每一方只能从树行中保存信息,因此:
  3. 第1排,第2排和第3排在第1侧;
  4. 第4,5和6排在第2侧;
  5. 排第7,第8和第9排;
  6. 10日,11日和12日进入第2侧; 等等.

我将选择要打印的组.

我打算这样做: 在此输入图像描述

  1. ((row.Index)+1)/ 3,
  2. 四舍五入,没有小数,得到一个整数,(如上面的excel图像),
  3. MOD表示整数乘以2,(如上图所示).

如果该MOD的结果为2,那么它将打印Side 1排列,如果该MOD的结果为2,则它将打印Side 2排列.

  • 我如何在C#中做到这一点?我正在使用VS2010 Express Edition.此外,我想使用System.Math.Ceiling但我得到一个命名空间,十进制,双精度和浮点数警告或错误.

c# decimal modulo ceil roundup

0
推荐指数
1
解决办法
564
查看次数

标签 统计

c# ×2

ceil ×1

decimal ×1

measure ×1

modulo ×1

printing ×1

roundup ×1

string ×1