コンボボックスの編集時に自動的にドロップダウンリストを表示するには?

文書番号 : 17428     文書種別 : 使用方法     最終更新日 : 2005/04/29
文書を印刷する
対象製品
El Tabelle for .NET 3.0J
詳細
El Tabelle のコンボボックス型セル(ComboBoxEditor)にはドロップダウンリストの状態を判定する DropDown プロパティが備わっていますが、このプロパティは読み取り専用となっています。

開発者がコーディングによってドロップダウンリストの表示を制御するには、ドロップダウンリストに割り当てられているショートカットキーを利用します。El Tabelle では Windows の仕様に合わせて F4 キーまたは Alt+↓ のキー操作によってドロップダウンリストを表示できます。

たとえば、コンボボックスの編集時に自動的にドロップダウンリストを表示するには、次のようにコーディングします。

[Visual Basic]
'シートにテスト用のコンボボックス型セルを設定する
Private Sub Form1_Load(ByVal sender As System.Object, _
 ByVal e As System.EventArgs) Handles MyBase.Load
  Dim objComboBoxEditor As New GrapeCity.Win.ElTabelle.Editors.ComboBoxEditor
  objComboBoxEditor.Items.Add("Test1")
  objComboBoxEditor.Items.Add("Test2")
  objComboBoxEditor.Items.Add("Test3")
  Sheet1.CellEditor = objComboBoxEditor
End Sub

'セルの編集時にドロップダウンリストを表示する
Private Sub Sheet1_EnterEdit(ByVal sender As Object, _
  ByVal e As GrapeCity.Win.ElTabelle.EnterEditEventArgs) _
  Handles Sheet1.EnterEdit

  If Sheet1.ActiveCell.Editor.GetType.ToString = _
    "GrapeCity.Win.ElTabelle.Editors.ComboBoxEditor" Then
    SendKeys.Send("{F4}")
  End If

End Sub


[C#]
//シートにテスト用のコンボボックス型セルを設定する
private void Form1_Load(object sender, System.EventArgs e)
{
  GrapeCity.Win.ElTabelle.Editors.ComboBoxEditor objComboBoxEditor = new GrapeCity.Win.ElTabelle.Editors.ComboBoxEditor();
  objComboBoxEditor.Items.Add("Test1");
  objComboBoxEditor.Items.Add("Test2");
  objComboBoxEditor.Items.Add("Test3");
  sheet1.CellEditor = objComboBoxEditor;
}

//セルの編集時にドロップダウンリストを表示する
private void sheet1_EnterEdit(object sender, GrapeCity.Win.ElTabelle.EnterEditEventArgs e)
{
  if(sheet1.ActiveCell.Editor.GetType().ToString() ==
    "GrapeCity.Win.ElTabelle.Editors.ComboBoxEditor")
  {
    SendKeys.Send("{F4}");
  }
}


コンボボックスの入力時に特定の値によってドロップダウンリストを表示するには、次のようにコーディングします。

[Visual Basic]
'シートにテスト用のコンボボックス型セルを設定する
Private Sub Form1_Load(ByVal sender As System.Object, _
 ByVal e As System.EventArgs) Handles MyBase.Load
  Dim objComboBoxEditor As New GrapeCity.Win.ElTabelle.Editors.ComboBoxEditor
  objComboBoxEditor.Items.Add("Test1")
  objComboBoxEditor.Items.Add("Test2")
  objComboBoxEditor.Items.Add("Test3")
  Sheet1.CellEditor = objComboBoxEditor
End Sub

'"Test"と入力された場合にドロップダウンリストを表示する
Private Sub Sheet1_CellNotify(ByVal sender As Object, _
 ByVal e As GrapeCity.Win.ElTabelle.CellNotifyEventArgs) _
 Handles Sheet1.CellNotify

  Select Case e.Name
    Case "TextChanged"
      If Sheet1.ActiveCell.Editor.GetType.ToString = _
       "GrapeCity.Win.Editors.ElTabelle.ComboBoxEditor" Then
        If Sheet1.ActiveCell.Text = "Test" Then
          SendKeys.Send("{F4}")
        End If
      End If
  End Select

End Sub


[C#]
//シートにテスト用のコンボボックス型セルを設定する
private void Form1_Load(object sender, System.EventArgs e)
{
  GrapeCity.Win.ElTabelle.Editors.ComboBoxEditor objComboBoxEditor = new GrapeCity.Win.ElTabelle.Editors.ComboBoxEditor();
  objComboBoxEditor.Items.Add("Test1");
  objComboBoxEditor.Items.Add("Test2");
  objComboBoxEditor.Items.Add("Test3");
  sheet1.CellEditor = objComboBoxEditor;
}

//"Test"と入力された場合にドロップダウンリストを表示する
private void sheet1_CellNotify(object sender, GrapeCity.Win.ElTabelle.CellNotifyEventArgs e)
{
  switch(e.Name)
  {
    case "TextChanged":
      if(sheet1.ActiveCell.Editor.GetType().ToString() ==
        "GrapeCity.Win.ElTabelle.Editors.ComboBoxEditor")
      {
        if(sheet1.ActiveCell.Text == "Test")
        {
          SendKeys.Send("{F4}");
        }
      }
      break;
  }
}
キーワード
HowTo

この文書は、以前は次のFAQ IDで公開されていました : 6988