問題タブ [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 投票する
3 に答える
4732 参照

c# - フォームが表示されると、DataGridViewComboBoxCell.DataSource が null に設定される

フォームのイベント ハンドラー中にDataGridViewComboBoxColumna を追加し、列のそれぞれの DataSource を設定しています。ただし、フォームが表示されると、それぞれの DataSource はに設定されています。列とそのセルにデータを入力するために使用するコードは次のとおりです。DataGridViewLoadDataGridViewComboBoxCellDataGridViewComboBoxCellnull

このコードは、フォームがロードされた後にクリックするボタンに配置した場合に期待どおりの動作をしますが、フォームのロード中に実行すると DataSource がクリアされます。助言がありますか?

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

data-binding - 行ごとにコンボボックス列をデータグリッドビューにデータバインドします(列全体ではありません)

これに関する投稿がいくつかありますが、何時間も検索した後でも、必要なものが見つかりません。

次の投稿の答えは、私が望むものをほとんど手に入れます: DataGridView の外部キーのコンボボックス

質問1:

製品に多くのライセンスがある例から離れて、私のデータベース マッピングはすべて多対 1 の関係です。これは、私のライセンス クラスが製品クラスへの参照を保持していることを意味します。License クラスには ProductId のプロパティがありません。これは、Product 参照を介して取得できるためです。UI でのバインディングを簡単にするためだけに、Product への参照と ProductId プロパティの両方を使用して License クラスを台無しにしたくありません。

DataPropertyNameこのため、 を Id フィールドに設定できません。次のようなクラス参照名である必要があります。

****更新**** 次のように DataPropertyName として Product.Id を指定することで、ProductId プロパティを作成せずにこれを部分的に機能させることができました。

ただし、そうすると、データバインディングが壊れて、セル値を手動で取得して設定する必要がありました。

DataGridView セルへのバインディングに関する投稿も見ましたが、それを行うとデータバインディングが壊れ、データソース自体が更新されません。

やり方が間違っているのかもしれませんし、やり方が違うのかもしれません。誰でもここで助けることができますか?

質問2:

製品ごとに異なるライセンスのリストを表示するにはどうすればよいですか? つまり、ライセンスのコンボボックス リストは、グリッド内の製品ごとに異なります。データバインディングを使用してこれを行いたいので、自分で値を取得して設定する必要はありません。

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

c# - ワンクリックでドロップダウン (データグリッド ビュー) アイテムを開く

DropDownButton内で使用される をダブルクリックしないようにするにはどうすればよいDataGridViewですか? 現在、DataGridView2 回以上クリックすることで、ドロップダウン項目を表示できます。最初にセルを選択し、2 回目にDropDownButton矢印をクリックすると、リストが表示されます。ワンクリックで同じことを達成するにはどうすればよいですか?

0 投票する
2 に答える
8219 参照

datagridview - DataGridviewComboBoxは、アイテムのリストを表示するために2回のクリックが必要です

重複の可能性:
シングルクリックで(データグリッドビューで)ドロップダウンを開く

1つの列がDropDownButtonスタイルのComboBoxであるDataGridViewがあります。DataGridViewはFullRowSelectモードです。5行あり、DataGridViewで行0が選択されていると仮定します。

たとえば行2のComboBoxから項目を選択したいので、ComboBoxの小さな矢印をクリックします。これを行うと、最初に、DataGridViewの行2が選択されます。ComboBoxはまだ開きません。2回クリックするだけで、ComboBoxが開きます。

実際、以前は3回のクリックが必要でしたが、次にCellMouseDownをオーバーロードして次のことを行いました。

これにより、クリック数は2回になります。ワンクリックでComboBoxアイテムを表示する方法はありますか?

編集:ComboBoxの小さな矢印をクリックする代わりに、ComboBox自体をクリックすると、ComboBoxアイテムを表示するのに3回クリックする必要があることにも言及する必要があります。

0 投票する
2 に答える
2803 参照

c# - DatagridView コンボ ボックスのセルをリセットする方法 DatagridView コンボ ボックスの SelectedIndexChanged 変更イベントで

「これは、別のデータ グリッド コンボ ボックスのセルを変更したときに、データ グリッド ビューのコンボ ボックスのセルをリセットすることに関するすべてです」

例:: DataGridView に 4 つの行があり、それらすべてにコンボ ボックスが含まれている場合、それらすべての値を選択する場合、最初の行の値を変更するだけで、コンボ ボックスのセルのそれぞれのイベントがその位置から下のすべてのセルをリセットする必要があります

出来ますか!または任意の提案

0 投票する
0 に答える
583 参照

c# - Datagridview での C# コンボボックスの動作

編集コントロールとしてコンボボックスを持つ列を持つ Datagridview があります。最初の行のコンボボックスで値 X を選択するとします。行 2 のコンボボックスを開くと、値 X がコンボボックスのリストの最初の項目でなくても、値 X がデフォルトとして選択されます (編集前にコンボボックスが空だった場合)。最初のアイテムを選択しないのはなぜですか (とにかくアイテムを選択したい場合)?

関連するかどうかはわかりませんが、グリッドとコンボは Linq2sql オブジェクトにバインドされています。

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

c# - c# add a dgv row with a dataGridViewComboBoxCell

I'm currently trying to add a ComboBox to a dataGridView.

In the DGV, there are 5 columns: checkbox, string, string, combobox, combobox.

both combobox-columns are configured as datagridviewcomboboxcolumns (via VisualStudio designer). My problem is to add rows.

My current try is: the columns are already defined and I add rows via dataGridView.Rows.Add. For that, I'm using an array of objects. Example:

This passes without any errors. But logically, the comboBoxes aren't filled with anything.

I tried setting a datasource to the 4th and 5th cell of a row:

Error...Using ROW.dataGridViewComboBoxCell.Items.Add: Items are not displayed...

filling obj[3] and 4 with a new DGVcomboBoxCell or -Column:

Further information: Each column should have the same Items in the comboBoxes. (These are previously loaded via internet, as xml). Setting a dataSource to the two columns destroys the whole DGV (I think because the other colmns don't have a Datasource). In a nutshell: How to add Rows to a DGV which contain comboboxes filled with items?

Sincerely, NoMad

edit: here's some code to solve my problem:

First add a row, cast columns, configure them and add them to the row. No Columns need to be previously specified in the designer.

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

c# - DataGridViewComboBox の塗りつぶしから項目を選択する方法

プロジェクト: Winforms、.NET フレームワーク: 3.5 (Visual Studio 2008)

私の問題は次のとおりです。

いくつDataGridViewかの列があり、一部の型と別の型DataGridViewTextBoxColumn、列はDataGridViewComboBoxColumnDataGridViewComboBoxColumnEntity Framework によって提供されるエンティティによって埋められます。

フォームを実行してロードすると、問題ありません

しかし、実行時にコレクションからアイテムを選択したいときに問題が発生しますDataGridViewComboBoxColumn

そのイベントでCellEndEdit

  • コンボボックスから1つのアイテムを選択してみてください
  • エンティティのオブジェクトを選択してみてください
  • チェーンまたは表示メンバー値で選択してみてください

目的のアイテムを選択できず、例外が発生します。

DataGridViewComboBoxCell 値が無効です