データグリッドビューのWrapModeプロパティとオートコンプリート。
- 題名: データグリッドビューのWrapModeプロパティとオートコンプリート。
- 著者: Iraquser
- 日時: 2013/10/09 19:55:24
- ID: 31866
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: データグリッドビューのWrapModeプロパティとオートコンプリート。
- 著者: Hongliang
- 日時: 2013/10/09 19:57:34
- ID: 31867
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: データグリッドビューのWrapModeプロパティとオートコンプリート。
- 著者: Iraquser
- 日時: 2013/10/10 11:21:36
- ID: 31868
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: データグリッドビューのWrapModeプロパティとオートコンプリート。
- 著者: Iraquser
- 日時: 2014/01/09 16:26:39
- ID: 32047
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
【解決したい問題】 いつもお世話になっています。現在、私用ソフトのデータグリッドビュー にオートコンプリート機能を追加しようとしています。『DataGridViewに 表示されるテキストボックスのオートコンプリート機能を有効にする』 (http://dobon.net/vb/dotnet/datagridview/autocomplete.html) を参考に試行錯誤しているのですが、オートコンプリート機能が有効にな りません。 【解決するために何をしたか】 色々と試行錯誤してるうち、列のWrapModeプロパティにTrueを設定した場 合に限りオートコンプリート機能が有効にならない事が判りました。 【追加事項】 WrapModeをTrueにしつつ、オートコンプリート機能を有効にするために、 何か解決策はありますでしょうか。 Public Class Form1 Private autoCompleteSource As New AutoCompleteStringCollection() Private DataGridView1 As New DataGridView Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load Me.Controls.Add(DataGridView1) DataGridView1.Location = Me.ClientRectangle.Location DataGridView1.Size = Me.ClientRectangle.Size DataGridView1.Anchor = AnchorStyles.Left + AnchorStyles.Right + AnchorStyles.Top + AnchorStyles.Bottom DataGridView1.Columns.Add("Column0", "カラム0") DataGridView1.Columns.Add("Column1", "カラム1") DataGridView1.Columns.Add("Column2", "カラム2") For i As Short = 0 To DataGridView1.ColumnCount - 1 DataGridView1.Columns(i).DefaultCellStyle.WrapMode = DataGridViewTriState.True ' WrapModeプロパティにTrueを設定するとオートコンプリート機能が使えない。 Next i AddHandler DataGridView1.EditingControlShowing, AddressOf DataGridView1_EditingControlShowing AddHandler DataGridView1.CellValueChanged, AddressOf DataGridView1_CellValueChanged End Sub Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As DataGridViewEditingControlShowingEventArgs) If DataGridView1.CurrentCell.OwningColumn.Name = "Column1" Then CType(e.Control, TextBox).AutoCompleteMode = AutoCompleteMode.SuggestAppend CType(e.Control, TextBox).AutoCompleteSource = Windows.Forms.AutoCompleteSource.CustomSource CType(e.Control, TextBox).AutoCompleteCustomSource = autoCompleteSource Else CType(e.Control, TextBox).AutoCompleteMode = AutoCompleteMode.None End If End Sub Private Sub DataGridView1_CellValueChanged(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) If DataGridView1.Columns(e.ColumnIndex).Name = "Column1" Then If Not String.IsNullOrEmpty(DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) AndAlso _ Not Me.autoCompleteSource.Contains(DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) Then autoCompleteSource.Add(DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) End If End If End Sub End Class