作成日: 2020/08/21 最終更新日: 2021/12/22
文書種別
不具合
状況
修正済み
詳細
データ値として全角空白や連続する半角空白を含むテキストがあり、それがリスト項目として指定されているとき、コンボボックスのリストあるいはオートコンプリートにおける候補リストをドロップダウン表示した際に、それらの空白文字が単一の半角文字に置き換わることがあります。
例)
リスト項目として以下のようなテキストを設定すると、ドロップダウン※において、各リスト項目はすべて「"あ いうおえ"」(単一の半角空白文字を含む)と表示されます。
"あ いうおえ" * 半角空白文字
"あ いうえお" * 全角空白文字
"あ いうえお" * 全角空白文字2個
※以下のいずれの場合でも、現象が発生します。
(1) C1ComboBoxの▼をクリックして、直接ドロップダウンさせたとき
(2) AutoCompleteModeプロパティを設定してオートコンプリートを有効にし、「あ」と入力したとき
(2021/09/13 追記)
本現象は、以下のように、コントロールのバージョンによって再度発生するようになった事を確認しました。
・4.5.20203.469:現象は発生しない
・4.5.20211.492、4.5.20212.513:現象が発生する
※再発後のバージョンでも、下記回避方法は有効です。
例)
リスト項目として以下のようなテキストを設定すると、ドロップダウン※において、各リスト項目はすべて「"あ いうおえ"」(単一の半角空白文字を含む)と表示されます。
"あ いうおえ" * 半角空白文字
"あ いうえお" * 全角空白文字
"あ いうえお" * 全角空白文字2個
※以下のいずれの場合でも、現象が発生します。
(1) C1ComboBoxの▼をクリックして、直接ドロップダウンさせたとき
(2) AutoCompleteModeプロパティを設定してオートコンプリートを有効にし、「あ」と入力したとき
(2021/09/13 追記)
本現象は、以下のように、コントロールのバージョンによって再度発生するようになった事を確認しました。
・4.5.20203.469:現象は発生しない
・4.5.20211.492、4.5.20212.513:現象が発生する
※再発後のバージョンでも、下記回避方法は有効です。
回避方法
この問題は2021J v3(4.5.20213.532)で修正されました。
※修正版を適用しない場合の回避方法は以下の通りです。
(1) については、ItemModeをHtmlPatternに指定し、preタグを用いてHtmlPatternプロパティを設定することで回避できます。
(2) については、代替手段はありません。
◎サンプルコード(VB)
※修正版を適用しない場合の回避方法は以下の通りです。
(1) については、ItemModeをHtmlPatternに指定し、preタグを用いてHtmlPatternプロパティを設定することで回避できます。
(2) については、代替手段はありません。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim dt As DataTable = New DataTable("Test01")
dt.Columns.Add("列1", GetType(String))
dt.Rows.Add("あいうえお")
dt.Rows.Add("あ いうおえ")
dt.Rows.Add("あ いうえお")
dt.Rows.Add("あ いうえお")
dt.Rows.Add("かきくけこ")
dt.Rows.Add("さしすせそ")
dt.AcceptChanges()
C1ComboBox1.TextDetached = True
C1ComboBox1.ItemsDataSource = dt.DefaultView
C1ComboBox1.ItemsDisplayMember = "列1"
C1ComboBox1.ItemsValueMember = "列1"
C1ComboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend
C1ComboBox1.AutoCompleteSource = AutoCompleteSource.ListItems
C1ComboBox1.ValueChangedBehavior = C1.Win.C1Input.ValueChangedBehaviorEnum.FireOnAnyChange
' リストのドロップダウン時の回避コード
C1ComboBox1.ItemMode = C1.Win.C1Input.ComboItemMode.HtmlPattern
C1ComboBox1.HtmlPattern = "<div><pre>{Text}</pre></div>"
End Sub
◎サンプルコード(C#) private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable("Test01");
dt.Columns.Add("列1", typeof(string));
dt.Rows.Add("あいうえお");
dt.Rows.Add("あ いうえお");
dt.Rows.Add("あ いうえお");
dt.Rows.Add("あ いうえお");
dt.Rows.Add("かきくけこ");
dt.Rows.Add("さしすせそ");
dt.AcceptChanges();
c1ComboBox1.TextDetached = true;
c1ComboBox1.ItemsDataSource = dt.DefaultView;
c1ComboBox1.ItemsDisplayMember = "列1";
c1ComboBox1.ItemsValueMember = "列1";
c1ComboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
c1ComboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
c1ComboBox1.ValueChangedBehavior = C1.Win.C1Input.ValueChangedBehaviorEnum.FireOnAnyChange;
// リストのドロップダウン時の回避コード
c1ComboBox1.ItemMode = C1.Win.C1Input.ComboItemMode.HtmlPattern;
c1ComboBox1.HtmlPattern = "<div><pre>{Text}</pre></div>";
}
旧文書番号
85915