2011-08-08 11 views
1

MessageBoxが文字列の幅に成長するのではなく、文字列を破損しないようにする方法はありますか?私は古いVBアプリケーションを移植しており、メッセージボックスを使ってかなりの量のデータをユーザーに提示しています。私はフォームを作成することができますが、私はすでにこの道を歩み始めており、戻らなければならないとは思わないでしょう。MessageBoxで文字列が改行されないようにする

ありがとうございました。

+4

[MessageBoxについて](http://blogs.msdn.com/b/oldnewthing/archive/2011/06/24/10178386.aspx) –

+0

Joel、リンクをありがとう。これはまさに私が恐れていたものでした。まあ、少なくとも私はバンデードを取り除くことができます、そして、それはちょっとだけ傷つくでしょう、そして、私はアプリケーションを移植することで乗り越えることができます。再度、感謝します。 – MikeMalter

答えて

1

ここでレイアウトする方法を制御できる唯一の(サポートされている)方法は、MessageBoxヘルパークラスを削除し、必要なものを実行するカスタムフォームクラスを構築することです。

+0

ロバート、答えに感謝します。 Joelは詳細に入るリンクを上に掲示しました。 – MikeMalter

1

私たちはメッセージのテキストに改行(\ r \ n)を埋め込むことで、この問題に対処しました。メッセージボックスは、折り返しテキストを受け入れるために垂直方向に拡大します。私たちはMessageBoxを非常に幅広く使用していましたが、中央のボタンを見ることさえできませんでしたが、今はうまく表示されます。

メッセージテキストの生成の複雑さ、およびそれを制御できるかどうかによって、これは最も簡単な解決策です。それ以外の場合は、独自のフォームを作成する必要があると思います。例えば

MessageBox.Show("Line1\r\nLine2\r\nLine3\r\nLine4", "MessageBox test"); 
MessageBox.Show("Line1 Line2 Line3 Line4", "MessageBox test"); 

最初の行は、テキストの4行とメッセージボックスを作成し、ウィンドウはすべてを示すために正しい高さに成長しました。 2行目は、1行のMessageBoxと、行全体を表示するための適切な幅を作成します。

+0

私にとって奇妙なのは、タブ文字をうまく使っているということです。何らかの理由で、2行の単語の間にスペースがあり、メッセージボックスがそこを壊すことになります。私はなぜそれが文の途中で中断することを選択するのか分からない。 – MikeMalter

+0

私はその行動を見たことがありません。完全なメッセージを残し、非常に広いメッセージボックスウィンドウを取得したい場合や、より読みやすいメッセージボックスウィンドウを取得する方法を見つけたい場合は、質問タイトルからわかりませんでした。私の答えはあなたにもっと読みやすいメッセージボックスを与えるでしょう。 – cdkMoose

+0

上記のジョエルのリンクをチェックしてください。それは残念ながらそこにあります。 – MikeMalter

関連する問題