0

specified cast is not validのためにしようとしているときにこのエラーが発生しました..コードのスナップショットautocompletedatagridviewtextboxcell..と一緒に添付しましたstack trace。私はここで何かが欠けていますか?

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        TextBox prodCode = e.Control as TextBox;
        if (dataGridView1.CurrentCell.ColumnIndex == 0)
        {
            var source = new AutoCompleteStringCollection();
            String[] stringArray = newDB.CustomerTbls.Where(s => s.Status == "Active" & s.Type == "Customer").Select(s => s.Name).ToArray<string>();
            source.AddRange(stringArray);

            if (prodCode != null)
            {
                prodCode.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
                prodCode.AutoCompleteCustomSource = source;
                prodCode.AutoCompleteSource = AutoCompleteSource.CustomSource;

            }
        }
        else
            prodCode.AutoCompleteCustomSource = null;
    }

DataGridViewテキストボックスセルのオートコンプリートコード

スタックトレース

4

2 に答える 2

1

このスレッドでdecycloneが示唆しているように、TextBoxのオートコンプリートコードで直面する問題は、新しいソリューションで新しいWindowsアプリケーションプロジェクトを作成し、新しいフォームを作成して、そのフォームで次のコードを試してください。次に、それをオブジェクトに追加しますString[]DataTableAutoCompleteStringCollection

AutoCompleteStringCollection data = new AutoCompleteStringCollection ();
data.AddRange(new string[]
   {
      "January",
      "February",
      "March",
      "April",
      "May",
      "June",
      "July",
      "August",
      "September",
      "October",
      "November",
      "December"
   });

// Create and initialize the text box
var prodCode = new TextBox
{
   AutoCompleteCustomSource = data,
   AutoCompleteMode = AutoCompleteMode.SuggestAppend,
   AutoCompleteSource = AutoCompleteSource.CustomSource,
   Location = new Point(20, 20),
   Width = ClientRectangle.Width - 40,
   Visible = true
};

それが機能するかどうかを確認します。それが機能しない場合は、この記事AutoCompleteCustomSource –指定されたキャストがTextBox無効ですで概説されている代替ソリューションを試すことができます。つまり、をaに置き換え、をComboBoxに設定DropDownStyleDropDownます。

于 2012-10-16T08:27:11.603 に答える
1

私は自分で問題を理解しました。私がやろうとしていた形はDatagridview AutocompleteでしたChild Form。そして、私が上に投稿したコードはで機能していましたnew Form。だから私Child Formは新しいものとして開いThreadてコードを実行してみました、そしてそれはうまくいきました!! @chridamのすべての助けに感謝します。

于 2012-10-16T09:53:31.180 に答える