問題タブ [datagridviewcombobox]
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.
vb.net - dataGridViewCombobox の値がナビゲーターに保存されない [保存] ボタンをクリックする
これは、EF を使用した VB.NET winforms プロジェクトです。ComboBox は、列 tName および tNumber を含む別のデータソースにバインドされます。TName はその値の簡単な説明で、tNumber は Financial Table の transaction_type という名前の列の下に保存される実際の数値です。財務表にある既存のデータの表示では、すべてが問題なく機能します。
グリッド内の各項目のコンボボックスはすべて、transaction_type の正しい説明を示しています。しかし、コンボ ボックスの値を変更して保存ボタンをクリックしても、transaction_type に値が保存されません。
なぜこれが考えられるのでしょうか?不足しているコードは必要に応じて追加します..
form_load イベントは次のようになります。
また、savebutton クリック イベントは次のとおりです。
ComboBox のプロパティを以下に示します。
保存ボタンをクリックすると、データグリッドへの他のすべての変更が正しく保存されることに注意してください... さらにテストした後、ComboBox が選択されていない場合、値は実際に保存されます。回避策は、comboBox の値が変更された後に別のことに集中することだと思います。これが最善の方法のように思われる場合、データグリッドビューのコンボボックスの SelectedIndexChanged イベントをフックするにはどうすればよいですか?
c# - Winform DataGridView の Combobox 列に入力するウィザード
C# VS2010 Entity Framework sql Server を使用しています。
プロジェクトと分野ごとに作業指示書を表示およびフィルタリングするための非常に (読み取り専用の) シンプルなアプリがあります。EF を使用してコントロールを設定します。ウィザードを使用して、外部キー参照列「DisciplineID」(int) を ComboBox 列に変更しました。ウィザードを使用して変更したとき、分野テーブル (tblDiscipline) の EF データソースを使用してボックスに入力し、整数の外部キーの代わりに分野 (配管、電気など) を表示しました。ウィザードのイメージは次のとおりです。
ProjectID 列をテキスト ボックス コントロールのままにしておくと、正常に機能し、整数の分野 ID が表示されます。示されているように変更すると、次のようになります
「System.ArgumentException: DataGridViewComboBoxCell 値が無効です」
.
DisciplineID は null にすることができます。それが問題ですか?どうすれば対処できますか?または、何か他の問題があります。これは運用データベースであるため、null は許可されますが、参照整合性により無効なキーは保証されません...
アイデア?
winforms - バインドされていない Datagridviewcomboboxcolumn 値は大文字と小文字を区別しますか?
datagridviewcomboboxcolumn
バインドされていない datagridview 内でを使用する場合、ケースに奇妙な問題があります。列には最初に有効な値が取り込まれます。その一部はすべて大文字で、一部は大文字と小文字が混在していますが、常に一意です。たとえば、「AB」、「AC」、「あいだ」、「AltCurr」、「BE」などです。
大文字の項目のいずれかを選択すると、すべて正常に機能します。ただし、セルのドロップダウンから大文字と小文字が混在する項目の 1 つを選択すると、「セルには無効なデータが含まれています」という DataError イベントが発行され、セルは「AB」を選択します (つまり、選択が見つからないため、デフォルトになります)。最初のエントリに)。
すべてのリスト項目を大文字に変更すると、問題は発生しません (ただし、これは実際にはオプションではありません!)。
BOUND datagridview コンボ列の大文字と小文字の区別に関する多くのコメントを読みました。解決策は、基になるデータテーブルの大文字と小文字の区別オプションを変更することですが、特定のバインドされていない問題を克服するものは何もありません。
他の誰かがこれに遭遇しましたか? もしそうなら、どのように修正しましたか?
編集: 要求されたコード サンプル...
Datagridviewcombobox 列は、デザイナーで既に作成されています (列 #2)。オブジェクトのコレクションから次のように設定されます。
行は、基になるデータテーブルから手動で追加されます。
この時点まではすべて正常に動作します。DGV は、セル コンボのすべての値で正しく表示されます。これ以上コードは必要ありません。
ここで、これらの行のいずれかのドロップダウンをクリックして件名を変更すると、「AiDA」または「AltCurr」項目 (つまり、大文字と小文字が混在するもの) を選択しない限り、すべて正常に機能します。dataerror コンテキストは Formatting | 画面。
すべて大文字のリスト項目を選択しても、問題は発生しません。コンボセルがオブジェクトコレクションで大文字と小文字が混在するアイテムを見つけていないように思えます-基になるコンボのオブジェクトコレクションの大文字と小文字の区別と、コレクション内の有効性をチェックするためにDGVが使用するものの大文字と小文字の区別に違いがあります。
c# - DropDownList 列を表示するために既存の DataTable にバインドされた DataGridView を取得するにはどうすればよいですか?
次の特性を持つ DataGridView を作成しようとしています: - その DataSource は、いくつかの列で作成した DataTable です。- DataGridView の列の 1 つに、入力した DropDownList が表示されます (これは、既に DataTable にある列に対応します)。- DropDownList で選択された値は、DataTable の基になる列に入力されます。
これまでのところ、DataGridView.AutoGenerateColumns プロパティを false に設定してから、DropDownList 以外のすべての列について DataTable の列をループ処理し、DataGridViewComboBoxColumn (その列の DataSource プロパティを私が作成したリスト) を DropDownList にしたい列に使用します。
ただし、これは面倒で長すぎるようです (そして、一般化することはほとんど不可能です)。これと同じ結果を達成するためのより良い方法はありますか?
vb.net - datagridviewにコンボボックスセルを動的に追加する
動的に入力されるdatagridviewがあります。条件に応じて、一部の列にコンボボックスを入力する必要があります。
しかし、私のコンボボックスセルは、適切な行ではなく、一番下の行に追加されます。
誰かが何をする必要があるか教えてもらえますか?
どこが間違っているのですか?
c# - DataGridViewは列セルコンボボックスを設定します
Datagridviewにそのようなテーブルがあります。
コンボボックスから列の「お金」の値を変更したい
私はこれで試しましたが、それ以上はわかりません:
vb.net - vb.netでdatagridviewセルスタイルをデフォルトのテキストボックスからコンボボックスに変更するにはどうすればよいですか?
データセットから入力されたdatagridviewがあります。
入力された後、ユーザーが行をクリックすると、最後の列がテキストボックスからコンボボックスに変わります。
vb.net 2010を使用し
ています。Datagridview1CellClickイベントで:
ただし、これによりエラーが発生します。
状況が現実的でない場合は、データセットからデータを入力するときに、最後の列をコンボボックス型にする必要があります。
前もって感謝します。
vb.net - Datagridviewcomboboxcell にドロップダウン項目が表示されない
次のように Datagridviewcomboboxcells を作成しました。それぞれに 2 ~ 3 個のアイテムがあります。コンボボックスセル内に適切な値を持つ Datagridviewcomboboxcells を表示できますが、コンボボックスセルをクリックしてもドロップダウン リストが表示されません。
ドロップダウン リストを表示するには、別のイベント ハンドラを作成する必要がありますか? デフォルトではドロップダウンしないのですか?
驚くべきことは、プロジェクトの別のバックアップで同じコードが機能することですが、それは現在使用できない古いバージョンです。ドロップダウンが発生しない原因について、エラーを再現できません。
c# - データソースにバインドされた DataGridViewComboBox は null エントリを許可します
BindingList などのデータソースにバインドされているときに、ユーザーがエントリをクリアできるように DataGridViewComboBox を設定することはできますか?
もしそうなら、それはどのように達成されますか?
c# - DataGridViewComboBoxColumns のバインドとデータの返し
DataGridView
これらの列のいくつかDataGridViewComboBoxColumns
が別のデータビューを指しているを使用しています。フィルタリングされたデータビューを使用してデータソースを設定すると、すべてが正常に表示されますが、コンボが変更されると、データグリッド ビューに誤った値が入力されることがあります。これは、コンボのフィルター処理されていないデータに、親 Datagridview の DisplayMember に割り当てられる同じ値を持つ複数の行が含まれている場合にのみ発生するようです。
たとえば (単純な例) 顧客のデータグリッド:
Country
&Shipping town
国と町のテーブルのデータビューの外部キーに基づくコンボです。明らかに、組み合わせShipping towns
はフィルタリングされ、対応する国のもののみが表示されます。のテーブルにShipping towns
トーキーの 2 つのエントリ (1 つはイングランド、もう 1 つはオーストラリア) が含まれている場合、国がイングランドである顧客Shipping Towns
にイングランドのすべてが表示され、トーキーが選択されている場合、親の datagridview に返される値はトーキーのキー値です。オーストラリアでは、コンボのフィルター処理されたデータビューにその値さえ含まれていませんでした。これは、コンボの表示メンバーとして使用されるデータビュー列に重複する値が含まれている場合にのみ発生します。