問題タブ [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.
c# - Datagridviewは、列コンボボックスの値の変更時にコードを実行します
そのdatagridview列のコンボボックス値の変更時にdatagridviewをリロードしようとしています。リロードの方法は知っていますが、アクションをトリガーするのに問題があります。この特定のセルの値の変更を探す必要がありますか、それともcomoboboxアクションに変更がありますか?
c# - C# Winforms DatagridviewCombobox 例外文字列をクラスに変換できません
datagridview に埋め込まれた datagridviewcombobox (ドロップダウン メニュー) コントロールから新しい値を選択すると、例外が発生します。コンボボックスは、私のクラスのインスタンスが取り込まれた BindingSource によって取り込まれます。メニューにオプションを適切に表示して選択することはできますが、フォーカスを新しいコントロールに変更すると (私が推測する変更をコミットすると)、例外が表示されます: Invalid Cast from System.String to myclass. スタック トレース (その単語を正しく使用している場合) は、ソースが
System.Windows.Forms.DataGridView.PushFormattedValue が System.Convert.DefaultToType にカスケードする
より明確な説明を以下に示します (長くなって申し訳ありませんが、再現できるようにしたかったのです)。
プロパティのない Occupant という空のクラスがあります (Occupant にも文字列の Name プロパティがある場合に問題が発生するため、そうではありません)。OccupantSource という名前の BindingSource があり、その DataSource は Occupant を指しています。
また、Driver と呼ばれる 1 つの Occupant プロパティを持つ Car と呼ばれるクラスもあります。
私の Form_Load() では、OccupantSource.AddNew() を 2 回呼び出し、CarSource.AddNew() を 1 回呼び出します。
DataGridView コントロールがあり、その DataSource は CarSource (Cars で構成される BindingSource) です。DGV には 1 つの列があり、CarSource 内の車の Driver プロパティを表示します。これは、DataPropertyName がドライバーに設定された DataGridViewComboBoxColumn です。
だから私が望むのは、Datagridview に車の行を表示することです。列の 1 つはドロップダウンして、Occupant の既存のインスタンスからドライバーを選択できるコンボボックスです。しかし、私は例外を取得します。
これは私が誤解しているものですか?クラスのインスタンスを使用して DataGridViewComboBox を作成することはできませんか?
c# - 個別のオプションに DataGridViewComboBoxColumn を使用する
.NET 3.5 で Winforms アプリケーションを変更しています。
以下に示すように、いくつかのハードコードされたオプションが入力された DataGridViewComboBoxColumn があります。
これらのオプションの選択を区別して、オプションがグリッドに存在すると、再度選択できないようにしたいと思います (ユーザーは現在の行を編集するか、削除して再入力する必要があります)。
これを行う簡単な方法はありますか?
他の人に役立つ場合に備えて、最終的な解決策を共有すると思いました。私の CellValidating イベントハンドラーは以下の通りです:
インスタンスの数をカウントするために LINQ を使用したいと思っていましたが、まだそれを学んでいるので、私が知っていることに固執しました。
c# - データグリッドビューのコンボボックス、キープレスローテーション
問題が発生しました。私は、datagridview と、DataGridViewComboBoxColumn を含む 1 つの列を持っています。
コンボボックスのデータソースは、次のようなリストです: Apa Arne Mia
ユーザーが 1 つのコンボボックスに入って A キーを押すと、「Apa」が候補として表示されます。まさに私が欲しいもの。問題は、ユーザーがたとえば下の行のコンボボックスをマークして A キー「Arne」を押すと、提案されることです。それは、リストを循環する、またはループすると言います。コンボボックスに入るたびに A を押すと、最初の選択肢として「Apa」が提案されます。
この問題は解決できますか?
よろしくマーティン
c# - 編集時にComboBoxに変わるDataGridViewTextBoxColumn
DataGridViewTextBoxColumnのようなComboBox列を持つDataGridViewを表示したいと思います。
DataGridViewにDataGridViewTextBoxColumnが表示されており、ユーザーがこの列のセルにフォーカスを設定すると、セルがComboBoxに変更されます。
どの関数をオーバーライドする必要があるのかわかりません。
DataGridTextBoxColumnには関数Editがありますが、この関数の間にコンボボックスを描画できますか?
vb.net - DataGridViewComboBoxColumnのComboBoxにユーザーの新しいアイテムを受け入れるようにするにはどうすればよいですか?
DataGridViewComboBoxColumnを使用する目的は、ComboBoxにユーザーの新しいアイテムを受け入れさせ、すでに存在するアイテムを選択できるようにすることです。
DataGridViewのEditingControlShowingイベントを使用して、実行時にDataGridViewComboBoxEditingControlのDropDownStyleを変更してこれを許可することを知っていますが、これをより低いレベルで実行できるかどうか疑問に思っています。
私が今していることは、DataGridViewComboBoxColumn、DataGridViewComboBoxCell、およびDataGridViewComboBoxEditingControlを拡張して、インスタンス化した瞬間にEditingControlのDropDownStyleを変更することを望んでいます。これまでのところ、運はありません。
デバッガーは正しい割り当てが実行されていることを示しますが、それでも、DropDownStyleはEditingControlShowingで(デバッグ目的でイベントを使用して)DropBoxではなくDropBoxListとしてポップします。これはインテントです。
ここでクラスに従います:
c# - DataGridView ComboBoxは、フォーカス時に保存されません
DataGridView ComboBoxで値を選択し、bindingnavigatorで保存ボタンをクリックした後、データはデータベースで更新されません。データを更新するには、ユーザーはフォーカスを失う必要があります。この問題を解決する方法はありますか?
.net - DataGridViewコンボボックスの選択が変更されると、ListBoxコントロールが選択を変更します
わかりました、この動作は非常に奇妙に思えます。文字列のIBindingListにバインドされているListBoxがあります。その隣のDataGridViewに、同じリストにバインドされたコンボボックス列を追加しました。このコードはDataBindingComplete
イベントに含まれています。
ListBoxデータソースは、フォームが読み込まれるときに同じリストオブジェクトに設定されます。
奇妙な部分は、グリッドの任意の行でコンボボックスの選択を変更するたびに、リストボックスで選択された項目が一致するように変更されることです。逆の動作は発生しません。私はそれを意図的に促進するためにコードで何もしていません。
何が原因でしょうか?これは私には意味がありません。
更新、lstTrucks.SelectedValueChangedイベントからのスタックトレース、
これはIBindingListのコードです。
PackingList.Trucks
はGenericBindingList(Of String)
c# - データバインド中に datagridviewcombobox の背後にあるデータ行を取得する
データバインドされた DataGridView があります。その列の 1 つは DataGridViewComboBox です。DataGridViewComboBox もデータバインドされています。DataGridViewComboBox の選択されたアイテムの背後にある DataRow を取得するまで、すべてが正常に機能しています (DataGridView の DataRow ではなく、コンボボックスの DisplayMember と ValueMember を埋めるデータ行です!)。
どうすればこれを達成できますか? DisplayMember と ValueMember の横に大量のデータを表示する必要があり、このデータは DataGridViewComboBox がバインドされている DataTable のデータ行内に存在するため、これが必要です。
事前にご協力いただきありがとうございます。
ダニエル
c# - 「DataGridViewComboBoxCell 値が無効です。」プロパティ DataSource
タイプDataGridViewComboBoxCellを含む列を更新するメソッドがあり、初期のComboBoxCellは空で、製品を選択し、新しいレコードの追加がうまくいくとComboBoxCellが更新されますが、変更すると例外が送信されます:「DataGridViewComboBoxCell値が無効です" DataSource プロパティを再割り当てする場合はそうではありません。
ここで方法:
null 値がないこと、参照が適切であることを確認してください
助けてくれてどうもありがとう