2016-05-02 12 views
0

質問をSQL databaseに保存し、質問をRich Text Boxに、回答をCheck Boxesに表示するクイズを作成しました。チェックボックスのテキストを複数の行に自動的に表示する方法は?

しかし、時には答えが長すぎます。私はそれを表示するにはさらに多くのスペースが必要です私はmultilineが私を助けると思ったが、私はそれをやる方法を見つけることができない。

ありがとうございます!

+0

あなたが;-) – TaW

答えて

1

Winformsのチェックボックスは、あなたがfalseに設定すると、チェックボックスの高さを変更することができます*
。デフォルトでtrueに設定されているAutoSize性質を持っており、それは、テキストが自動的に折り返されますです。
ただし、AutoSizeプロパティがfalseに設定されている場合は、チェックボックスの幅と高さを自分で設定する必要があります。

* TaWが彼のコメントで述べたように、AutoSizeプロパティのデフォルトはtrueで、デザイナにチェックボックスを追加した場合にのみ有効です。動的に作成されるチェックボックスのデフォルト値はfalseです。

+0

デフォルトの下に2つの答えを組み合わせる必要があるチェックボックスをデザイナーに追加のための唯一の真実です。動的に生成されるチェックボックスのデフォルトはfalseです。 go figure ... – TaW

+0

@Tawありがとう、私はそれを知らなかった。私の答えにそれを含めるでしょう。 –

0

チェックボックスの幅を設定すると、自動的に複数行が取得されます。 コントロールの幅を設定する方法(幅を設定したい場合)と、高さを調整する方法の簡単な例を作成しました。 高さを正しく設定するか、テキストがクリップされる可能性があります。

はこれを試してみてください:

private void CreateCheckBox(){ 
     CheckBox cb = new CheckBox(); 
     cb.Location = new Point(10, 10); 
     cb.Width = 150; 
     Controls.Add(cb); 
     cb.Text = "This is a long text that needs to be broken down into multiple lines."; 
     cb.Height = GetHeight(cb); 
    } 

    private static int GetHeight(CheckBox cb) { 
     using (Graphics g = cb.CreateGraphics()) { 
      var size = g.MeasureString(cb.Text, cb.Font); 
      int rows = (int)Math.Ceiling(((double) size.Width/cb.Width)); 
      return (int)(rows*size.Height); 
     } 
    } 
+0

これは、AutoSizeプロパティがデフォルトでfalseであるため、動的に生成されるチェックボックスでのみ機能します。デザイナで追加されたものは、明示的に設定を解除する必要があります。 – TaW

+0

あなたは正しい@Tawです。 – MrApnea

関連する問題