問題タブ [datagridviewcomboboxcell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3623 参照

vb.net - DataSource を DataGridViewComboBoxCell に再バインドしようとしてエラーが発生しましたか?

2 つの DataGridViewComboBoxColumns を持つ DataGridView があります。最初の列で選択した項目を使用して、2 番目の列の項目の再入力を行ごとにトリガーしたいと考えています。

ここに私がこれまで持っているコードがあります。「addlInfoParentCat」は最初の列を識別し、currentRow.Cells.Item(1) は再入力する DataGridViewComboBoxCell です。ExtEventAdditionalInfoType は、文字列と値のペアを含む、私が定義した型です。

基本的に私が見ているのは、バインディングが初めてうまく機能するということです. 最初の列で項目を選択すると、2 番目の列に項目が正しく入力されます。DataGridView に行を追加して、このプロセスを繰り返すことができます。

問題は、2 番目の列がバインドされた後で最初の列の項目を変更しようとすると発生します。次のようなダイアログボックスの無限の文字列が表示されます。

System.ArgumentException: DataGridViewComboBoxCell 値が無効です。

なぜこれが起こっているのですか?前もって感謝します!

UPDATE CodeByMoonlight の提案は機能しているようです。

再バインドする前に、DataGridViewComboBoxCell の値をクリアします。

0 投票する
3 に答える
12996 参照

vb.net - DataGridViewTextBoxCell と DataGridViewComboBoxCell を切り替える方法は?

2 つの列を持つ DataGridView が必要です。最初の列は常に DataGridViewComboBoxColumn 型になります。その列の選択に基づいて、2 番目の列の対応するセルを DataGridViewComboBoxCell または DataGridViewTextBoxCell に変更できるようにしたいと考えています。

タイプ DataGridViewColumn の 2 番目の列を作成するだけでよいと考えていますが、その場でセル タイプを変更する方法の仕組みがわかりません。

Visual Studio 2005 で VB.NET を使用しています。

前もって感謝します!

更新: 回避策の 1 つは、2 番目の列を DataGridViewComboBoxColumn として作成し、セルの属性を変更して、ドロップダウン リストのように動作するか、または (編集可能な) ドロップダウンとして動作するようにすることです。要素。後者は、私がそれと一緒に暮らすことができるテキストボックスのように見え、セルのタイプを変更する必要はありません.

0 投票する
3 に答える
6081 参照

c# - デフォルト値を DataGridViewComboBoxCell に設定する

コンボボックスに多数の値が入力されている場合でも、コンボボックスにはデフォルトで空白のフィールドが表示されます

次のことも試しましたが、空白のテキストが表示されます。

0 投票する
1 に答える
526 参照

.net - フォーカスを失ったときの.NET DataGridViewComboBoxCellの動作

DataTable にバインドされた DataGridView があります。バインディングが完了したら、DGV のすべてのセルを手動で検索し、1 つの通常の DGV セルを DataGridViewComboBoxCell インスタンスに置き換えます。セルには、独自のデータ ソースがバインドされています。

私が抱えている問題は、ユーザーが DataGridViewComboBoxCell セルで選択を行ってそれを離れると、表示される文字列が DisplayMember の内容 (「Warehouse #23」のようなもの) からその基になる ValueMember (23 のようなもの) に変更されることです。 . セルが再入力されると、DisplayMember (など) の表示に戻ります。これ以外はすべて正常に機能します (GUI は使用可能、選択は可能、表示だけに問題あり)。

この動作を制御する DataGridViewComboBoxCell オブジェクトのプロパティはありますか? または、この動作は、DataGridViewComboBoxCell を通常の DGV 列に手動で埋め込んだことによるものですか?

ああ、私がこれを行っている理由は、オンザフライのユーザー入力 GUI を構築する簡単な方法が必要だからです。プログラムで DataTable を作成し、DGV にプラグインするだけです。DGV は「GUI」を構築し、それを使えるようにします。ヘッダーに 1 つの列を使用し、ユーザーの入力に 1 つの列を使用できます。標準のテキスト セル (基本的にはテキスト ボックス) だけでなく、選択指向のコンボ ボックス セルも必要になります。

0 投票する
1 に答える
643 参照

.net - DataGridViewのTextBoxCell列に単一のComboBoxCellを設定するには?

次のDataGridViewように定義された2つの列があります。

位置 Col=1, Row=0 のセルが aComboBoxではなく a である必要がありTextBoxます。そのため、次のコードを追加しようとしましたが、機能しません。編集コントロールは TextBox のままです。

どうすればこの問題を解決できるか知っていますか?

0 投票する
1 に答える
5353 参照

datagridview - CellFormatting イベントで DataGridViewComboBoxCell の色を変更するにはどうすればよいですか?

これはテキスト列では問題なく機能しますが、コンボ ボックス列では違いはありません。これを行う簡単な方法があれば、所有者に描画コントロールを作成しないでください。

ありがとう、スパイク

0 投票する
4 に答える
10145 参照

c# - DataGridViewコンボボックスにドロップダウンリストをワンクリックで表示させるにはどうすればよいですか?

「EditOnEnter」をtrueに設定した後もDataGridViewComboBoxCell、コンボボックスの下矢印部分をクリックしないと、2回クリックして開くことができます。

誰かがこれを修正する方法の手がかりを持っていますか?使用する独自のDataGridViewクラスがあるので、システム全体でこの問題を簡単に修正できます。いくつかのスマートイベントハンドラーを使用できます。

ありがとう。

0 投票する
1 に答える
1620 参照

c# - 変更を自動コミットしようとするDataGridViewComboBoxCellの奇妙な問題

したがって、私の目標は、ユーザーがドロップダウンリストからアイテムをクリックすると、セルが自動的にEndEdit()を呼び出すことです。最も奇妙なことは、以下のコードが、ドロップダウンして値を選択する2番目からn番目のComboBoxesCellsで機能することですが、最初のコードは決して機能しません。ここに欠けているものはありますか?

明らかでない場合は、DataGridViewから継承していることをここに追加する必要があります

0 投票する
1 に答える
785 参照

.net - ユーザーが DataGridViewComboBoxCells にデータを入力できないようにするにはどうすればよいですか?

多数の DataGridView コントロールを使用するプロジェクトがあります。セルのほとんどは、DataGridViewTextBoxCell 説得です。コントロールを次のように宣言します。

後で、次のように DataGridViewTextBoxControls か DataGridViewComboBoxCells かを指定します。

コード内のどの場所でも、ユーザーがコンボ ボックスに独自の値を入力できる必要はありません。つまり、ハードコードされているか、値がアプリケーション内の他のデータから収集されています。

現在、ユーザーは上記のように定義されたコンボ ボックス コントロールを強調表示し、好きなように入力を開始できます。たとえば、1 から 9 までの整数を選択できるコンボ ボックスがあるとします。コンボ ボックスのセルを強調表示して、「Hello, World!」と入力します。もしよろしければ。

この能力を無効にするには何が必要ですか? 確かに物件はあると思いますが、まだ見つけていません。インターネットを検索したところ、ユーザーが入力した値をリストに追加する機能と、一連のデータ バインディング チュートリアルしか見つかりませんでした。

前もって感謝します!ハ

0 投票する
4 に答える
19207 参照

c# - System.ArgumentException: DataGridViewComboBoxCell 値が無効です

プログラムでデータを に割り当てる有効な方法は何DataGridViewComboBoxCellですか?