【问题标题】:c# eliminatig over spaces in richtextbox outputc# 消除richtextbox输出中的空格
【发布时间】:2018-04-04 02:02:22
【问题描述】:

我有一些空格问题,我不知道如何解决。应该是这样的:

但实际上是这样的:

public void azurirajPodatke()
{
    richTextBox1.Clear();

    try
    {
        con.Open();
        string kom = "select * from Pecaros order by PecarosID asc";
        cmd = new SqlCommand(kom, con);
        dr = cmd.ExecuteReader();

        while (dr.Read())
        {
            string id = dr[0].ToString();             
            string ime = dr[1].ToString();                   
            string prezime = dr[2].ToString();                   
            string adresa = dr[3].ToString();                   
            string telefon = dr[4].ToString();                   
            string grad = dr[5].ToString();
            string linija = string.Format(
                "{0,-15}|{1,-10}|{2,-15}|{3,-15}|{4,30}|{5,-15}", 
                id, ime, prezime, adresa, telefon, grad);                   
            richTextBox1.Text += linija+"\n";                                          
        }

        dr.Close();
    }
}

【问题讨论】:

  • 当您拥有 RichTextbox 时,预期的 GUI 正在使用 ListView
  • 使用等宽字体
  • 如果您只想使用 RichTextBox - 您必须首先考虑每列的最长文本并为整列保留那么多空格来调整间距。这就是为什么我们有像(ListView 或 Grid)这样的控件
  • RichTextBox 有一个SelectionTabs 属性,以整数数组的形式表示像素 位置:richTextBox1.SelectionTabs = new int[] { 50, 100, 200, (...) }; 然后设置richTextBox1.AcceptsTab = true; 并用@987654329 分隔列@.
  • @Jimi 谢谢你成功了。

标签: c# sql ado.net string-formatting richtextbox


【解决方案1】:

首先,您需要将所有对象(文本框、标签等)包装在一个 groupBox 对象中,如图所示。这将允许您配置填充和边距以控制对象与另一个对象的距离。然后,将 formBorderStyle 更改为“FixedSingle”,我会将“MaximizeBox”更改为 false。然后,将文本框更改为 ListView 或 DataGrid。最后,当您调整表单大小时,它会按照您想要的方式重新排列对象。

【讨论】:

  • 但是 OP 的问题是关于他在 RIchTextBox 中的奇怪间距。
  • 我的回答中也提到了这个问题,他需要进行一些更改才能使其看起来像他想要的那样。他需要将richtextbox 更改为listview,然后更改整个表单本身
猜你喜欢
  • 2011-05-13
  • 1970-01-01
  • 2017-07-09
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 2011-08-26
  • 2017-11-03
相关资源
最近更新 更多