サポート&サービス

Home > サポート&サービス > テクニカルサポート > ナレッジベース

テクニカルサポート

製品に関する技術的なサービスを提供しています。製品別の技術情報(ナレッジベース)および、対応環境情報をご覧いただけます。また、E-mailによるテクニカルサポートのお申し込みもこちらで受け付けています。

ComponentOne サブスクリプション製品をご購入された方

サブスクリプションにて、ComponentOne製品(ComponentOne Studio、Wijmo、Xuni)をご購入された方は、下記のComponentOne Studioサイトからユーザー登録をお願いいたします。

ComponentOne サブスクリプション製品のユーザー登録を行う

ナレッジベース

スケーリングを変更すると、マルチカラムコンボボックス型セルで例外が発生する場合がある
文書番号 : 41419     文書種別 : Bug
登録日 : 2017/12/01     最終更新日 : 2017/12/15
文書を印刷する
対象製品
SPREAD for Windows Forms 8.0J
ステータス
回避方法あり
詳細
スケーリングを変更すると、マルチカラムコンボボックス型セルで例外(ArgumentException)が発生する場合があります。​

【再現手順】
1.画面のスケーリングを150%に設定します
2.再現コードをコピーしアプリケーションを実行します
3.セルB1のマルチカラムコンボボックス型セルをクリックしアイテムを選択します
 -- 例外(ArgumentException)が発生します

【サンプルコード】
private IList _dataList1;
private IList _dataList2;
private IBindingList _bindingList2;
private BindingSource _bindingSource2;

private void Form1_Load(object sender, EventArgs e)
{
  _dataList1 = new List();
  _dataList1.Add(new TestModel { Column1 = "選択1", Column2 = "ひらがな" });
  _dataList1.Add(new TestModel { Column1 = "選択2", Column2 = "カタカナ" });
  var mcb1 = new FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType();
  mcb1.DataSourceList = _dataList1;
  mcb1.ListWidth = 300;
  fpSpread1_Sheet1.Cells[0, 1].CellType = mcb1;

  _dataList2 = new List();
  _bindingList2 = new BindingList(_dataList2);
  _bindingSource2 = new BindingSource(_bindingList2, null);
  var mcb2 = new FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType();
  mcb2.DataSourceList = _bindingSource2;
  mcb2.ListWidth = 300;
  fpSpread1_Sheet1.Cells[0, 2].CellType = mcb2;
}

private void fpSpread1_ComboCloseUp(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e)
{
  if (e.Column == 1)
  {
    var value = fpSpread1_Sheet1.Cells[0, 1].Text;
    _dataList2.Clear();
    _bindingSource2.ResetBindings(true);
    SetDataList2(value);
    _bindingSource2.ResetBindings(true);
  }
}

private void SetDataList2(string value)
{
  if (value.Equals("選択1"))
  {
    _dataList2.Add(new TestModel { Column1 = "てきすと11", Column2 = "てきすと12" });
    _dataList2.Add(new TestModel { Column1 = "てきすと21", Column2 = "てきすと22" });
    _dataList2.Add(new TestModel { Column1 = "てきすと31", Column2 = "てきすと32" });
  }
  else
  {
    _dataList2.Add(new TestModel { Column1 = "テキスト11", Column2 = "テキスト12" });
    _dataList2.Add(new TestModel { Column1 = "テキスト21", Column2 = "テキスト22" });
  }
}

class TestModel
{
  public string Column1 { get; set; }
  public string Column2 { get; set; }
}
回避方法
セルのインスタンスを新たに生成する方法で回避します。

【サンプルコード】
private void fpSpread1_ComboCloseUp(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e)
{
  if (e.Column == 1)
  {
    // MultiColumnComboBoxCellTypeを再定義
    _dataList2.Clear();
    SetDataList2(value);
    var mcb2 = new FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType();
    mcb2.DataSourceList = _dataList2;
    mcb2.ListWidth = 300;
    fpSpread1_Sheet1.Cells[0, 2].CellType = mcb2;
  }
}

この情報は、疑問・問題解決のお役に立ちましたか?

    


こちらに入力されたご質問には回答できませんので、製品に関するお問い合わせは、別途「E-mailサポート」をご利用ください。


※ 個人情報保護のため、個人情報の記入はご遠慮ください。

このページの先頭へ