【问题标题】:Printing on a winforms textbox C#在 Winforms 文本框 C# 上打印
【发布时间】:2020-08-25 18:44:46
【问题描述】:

使用 C# 我想制作一个 winforms 计算器应用程序,但是为了显示数字,我需要在文本框上打印数字。我怎样才能做到这一点?我的设计是使用文本框来显示数字,但我在文档中看不到任何打印命令。 我检查了 mircrosoft 文档,发现 `print()` 不起作用,当我尝试使用失败的文本时。我应该使用什么命令以及如何使用它?我的文本框是使用工具箱而不是通过代码添加的,我的按钮也是如此。也许问题出在按钮上?

public void button_click(object sender, System.EventArge e)
{
  X = 1; // One of the variables the user types in.
  TextBox TextBox1 = new TextBox();// Trying to make an object for textbox.
  XX = Covert.ToString(X);//TextBox only accepts strings so X was to be one...
  TextBox1.Text = XX;//Hoping this will display now it doesn’t help!
}

【问题讨论】:

  • “打印”是指“显示”?如果是这样,问题是什么?注意: Richttextbox != TextBox ! - Richttextbox:您可以 rtb.Appen(text)..
  • 好吧,我添加了细节为什么这个问题仍然关闭你需要多少细节?
  • 我告诉过你我在做什么我试图修复它的问题是什么你还需要什么?
  • 我告诉过你不要把打印和显示混为一谈。你应该解决你的问题。另外:当然,文本或富文本框中没有“打印”命令。打印是将东西发送到打印机。您可以更改 TextBox 的 Text 属性,对于 RTB,请阅读下面的帖子,因为您可能希望保留格式。 - 创建控件后,您还必须将其添加到表单(或其他容器)的控件集合中。

标签: c# winforms


【解决方案1】:

要在富文本框中显示一些文本,您可以使用属性 Text:

const string textToDisplay = "Hello World!";
this.richTextBox1.Text = textToDisplay;

这将显示未格式化的文本。

要显示格式化文本,请使用RichTextBox.Rtf

string textWithRtfCodes = ...
this.richTextBox1.Rtf = textWithRtfCodes;

通常带有 rtf 代码的文本来自其他来源。虽然可以自己将格式代码添加到文本中,但通常更简单的方法是将代码添加为选定文本,然后更改选定文本的属性。

void AppendRedBoldText(string text)
{
    this.richTextBox1.Select(this.richTextBox1.TextLength, 0);
    this.richTextBox1.SelectionColor = Color.Red;
    thir.richTextBox1.SelectionFont = new Font(this.richTextBox1.Font, FontStyle.Bold);
    this.richTextBox1.AppendText(this.textBox1.Text);
}

如果您要更频繁地附加多种字体、颜色等文本,请考虑创建 RichTextBox 的扩展方法以附加特定格式的文本。见extension methods demystified

public static class RichTextBoxExtensions
{
    public static void AppendText(this.RichTextBox richTextBox,
        string text,
        Color color,
        Font font)
   {
        // don't update the RichTextBox while text is added
        richTextBox.SuspendLayout();

        // select the end of the richTextBox and append the text
        richTextBox.Select(richTextBox.TextLength, 0);
        richTextBox.SelectionColor = color
        ichTextBox.SelectionFont = font;
        richTextBox.AppendText(text);

        richTextBox.ResumeLayout();
    }

为了让生活更轻松:添加几个重载:

    public static void AppendText(this.RichTextBox richTextBox, string text)
    {
        AppendText(richTextbox, text, richTextBox.Color, richTextBox.Font);
    }

    public static void AppendText(this.RichTextBox richTextBox, string text,
        Color color)
    {
        AppendText(richTextbox, text, color, richTextBox.Font);
    }

    public static void AppendText(this.RichTextBox richTextBox, string text,
        Font font)
    {
        AppendText(richTextbox, text, richTextBox.Color, font);
    }

    public static void AppendText(this.RichTextBox richTextBox, string text,
        FontStyle fontStyle)
    {
        AppendText(richTextbox, text, richTextBox.Color, 
           new Font(richTextBox.Font, fontStyle));
    }
}

用法:

RichTextBox rtb = ...
rtb.AppendText("Hello", FontStyle.Italic);
rtb.AppendText("World", Color.Red);
rtb.AppendText("!", FontStyle.Bold);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    相关资源
    最近更新 更多