2

Windows プロジェクトの実行中に問題が発生しました。皆さんがそれを回避する方法を見つけるのを手伝ってくれると思います。

問題 - 可変長のアイテムのリストを含むフォームにドロップダウンがあります。テキストの幅がドロップダウンの幅を超え、テキストが切り捨てられることがあります。全文を表示する方法を考えたいと思います。ツールチップを含めてみましたが、ドロップダウンが展開されたときに正常に機能しますが、ドロップダウンの状態が折りたたまれたときにツールチップが非表示になります。ドロップダウンの選択した項目の全文をツールチップまたはその他の方法で表示したい。

お手伝いありがとう。

4

2 に答える 2

2

方法はいくらでもありますが、

1)コンボボックスを大きくする最も明白なもの

2)現在行っているようにツールチップを使用しますが、これをコンボボックスのマウスオーバーイベントに拡張します

3) 希望の長さと高さのラベルを作成します (ラベルはテキストを折り返すこともできます)。Combobox の MouseHover、MouseLeave、DropDown イベントを使用して目的のテキストでラベルを操作し、ラベルの表示プロパティを使用して必要に応じて表示および非表示にします。

さらに、ツールチップにラベルを使用すると、より多くの機能と柔軟性が得られます。

于 2013-03-28T15:25:34.920 に答える
1

これを試して:

private SizeF GetMaxSize(List<string> items)
{
    Graphics g = CreateGraphics();
    SizeF size;
    SizeF oldSize = new Size(0f,0f);

    foreach(string item in items)
    {
        size = g.MeasureString(item, myComboBox.Font);
        if (size.Width > oldSize.Width) {
            oldSize.Width = size.Width
            oldSize.Height = size.Height
        }
    }

    return oldSize;
}

コンボボックスに入力するすべての文字列のコレクションを渡すだけList<T>で、文字列の最大幅が検出されます。その後、それに応じてコンボ ボックスのサイズを変更できます。myComboBox.Width = GetMaxSize().Width

于 2013-03-28T15:37:26.237 に答える