かなり大きな文字列を含む可能性DataGridView
のある aが含まれています。ComboBox
ドロップダウンリスト自体を展開するか、少なくとも文字列をワードラップして、ComboBox
列幅のサイズを変更しなくてもユーザーが文字列全体を表示できるようにする方法はありますか?
13795 次
3 に答える
8
これを解決するために私がしたことは、うまくいきます...
public class ImprovedComboBox : ComboBox
{
public ImprovedComboBox()
{
}
public object DataSource
{
get { return base.DataSource; }
set { base.DataSource = value; DetermineDropDownWidth(); }
}
public string DisplayMember
{
get { return base.DisplayMember; }
set { base.DisplayMember = value; DetermineDropDownWidth(); }
}
public string ValueMember
{
get { return base.ValueMember; }
set { base.ValueMember = value; DetermineDropDownWidth(); }
}
private void DetermineDropDownWidth()
{
int widestStringInPixels = 0;
foreach (Object o in Items)
{
string toCheck;
PropertyInfo pinfo;
Type objectType = o.GetType();
if (this.DisplayMember.CompareTo("") == 0)
{
toCheck = o.ToString();
}
else
{
pinfo = objectType.GetProperty(this.DisplayMember);
toCheck = pinfo.GetValue(o, null).ToString();
}
if (TextRenderer.MeasureText(toCheck, this.Font).Width > widestStringInPixels)
widestStringInPixels = TextRenderer.MeasureText(toCheck, this.Font).Width;
}
this.DropDownWidth = widestStringInPixels + 15;
}
}
于 2011-01-26T22:51:26.190 に答える
-3
私が知っていることではありませんが、一部のブラウザーは、必要に応じてボックスの幅を超えてドロップダウン メニューの幅を拡張するほどスマートです。ユーザーベースを少し制御できれば、Firefox と Chrome がそれを実行できることを私は知っています。
本当に必死なら、フラッシュ ベースのコンボ ボックスでデータを html にポストするのはどうですか?
于 2011-01-14T00:16:56.330 に答える