問題タブ [datagridviewcolumn]
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.RowValidatingイベントがユーザーインタラクションとBindingSourceリストの変更によるものであることをどのように検出できますか?
私はついに週末を通して取り組んできたバグを突き止めましたが、それを本当に解決する方法がわかりません。つまり、クリーンな方法で。
状況は、ビジネスオブジェクトのリストにバインドされているDGVコントロールを持っているということです。列の1つはデータソースにバインドされておらず、このセルのデータの永続性を処理するためにCellParsingイベントとCellFormattingイベントを接続しました。私は基本的に.netデータバインディングを回避し、自分の貧弱なバージョンを実装しました。これは意図的なものではなく、解析とフォーマットの要件が複雑な非常に古いコードであり、バインドされていない列に基づくソリューションを誤って実装しました。これを処理する正しい方法がわかったので、コードを修正しましたが、別の方法でバグを解決する方法を知りたいと思います。
RowValidatingイベントを処理し、行全体に対して1つの最終検証を実行して、すべてがクールであることを確認します。もちろん、問題がある場合は検証をキャンセルし、行はコミットされません。これはすべて、ユーザーがUIインタラクションを介して行を編集および追加している場合は正常に機能しますが、データソースが設定されている場合は問題が発生します。問題は、DGVが内部リストを更新して行を作成するときにCellFormattingが呼び出されないか、少なくとも検証イベントが発生する前に呼び出されないことであると思われます。これにより、RowValidatingハンドラーがUnbound列からnull値をプルします(CellFormattingが呼び出されておらず、値がまだ設定されていないため)。
DGVに関する知識を更新し、CellValueNeededイベントの処理がチケットになる可能性があると考えましたが、DataGridViewCellValueEventArgs.Valueを設定しても、期待したようにCellFormattingイベントがトリガーされませんでした。
私はこの状況を処理する方法を考えていました。私が思いついたのは、最初のバインディングやバインドされたリストの変更ではなく、UIイベントから検証がトリガーされたときを検出することだけです。これはハッキーな解決策であるだけでなく、それがどのように行われるのかわかりません。
問題を説明する完全なサンプルアプリケーションを作成しました。このような問題をどのように解決してくれるのか、本当に興味があります。ここには大きなデザインの匂いがあるようです。
c# - DataGridViewの並べ替え(列および昇順/降順)の取得と設定
小さな問題があります。並べ替え(列と昇順または降順)を保存して、プログラムの次の開始時にロードする必要があります。現在選択されている列を取得することは問題ありません。
そして、私の設定でデータを保存します。このプロパティの設定も問題ありません。
ただし、昇順または降順のプロパティも保存して設定する必要があります。どうすればよいですか?dataGridView.SortedColumnを使用してListSortDirectionを取得する方法はありますか?または、dataGridViewが昇順または降順でソートされているかどうかを設定するためのより良い解決策はありますか?
ありがとう、あいさつ!レイジン
c# - C#を使用したExcelシートのセル表示の日付と時刻
Excel シートを DataGridView にインポートしています。セルの 1 つに 2017 年 5 月 6 日という日付があります。
日付のみを表示する方法を教えてください。
ありがとう !
.net - DataGridView列が互いに積み重ねられているのはなぜですか?
WinFormには、DataGridViewと列があります。奇妙な理由で、プログラムを実行すると、実行時に列が互いに積み重ねられます。私が何をしても変わらない。特定のプロパティを設定しているのか、何を設定しているのかわかりません。
設計時:
実行時:
c# - DataGridView autoComplete コンボボックス列が最初のセルを離れたときに値を保持しない
私は autoComplete コンボボックス列を持つバインドされた dataGridView を持っています。
初めてオートコンプリート セルにテキストを入力し、tabKey を使用して次のセルに移動すると、選択内容が保持されず、選択内容がクリアされ、オートコンプリート セルが null のままになります。すぐに左矢印キーを使用してそのオートコンプリート セルに戻り、テキストを入力すると、選択した内容が問題なく保持されます。
したがって、問題は、セルに最初の最初の選択を保持させることです。現在の唯一の回避策は、Tab キーを押して次のセルに移動し、この問題のある autoComplete コンボボックス セルに戻って、全体を入力することです。この時点で、それは機能します。
セルを離れるときに選択したテキストをコミットするために処理する必要があるイベントはありますか?
コード:
編集:以下のCellLeaveでは、選択を行った場合でも値がnullとして返されます。
c# - 異なる値リストを持つコンボボックスセルを使用してテキストボックスとコンボボックスを DataGridView に設定する方法
私は3つの列、テキストボックス、コンボボックス、テキストボックスをこの順序で持っています:
そして、それらは次のように datagridview に表示されます。
後で、次のように各コンボボックス セルに異なる値を追加しようとします。
これにより、最初の列と最後の列が入力され、コンボボックス列が空のデータグリッドが生成されます。私が扱うデータエラーで。メッセージは次のとおりです。
ほとんどの投稿を読みましたが、これに対する解決策が見つかりません。
次のようにデータソースを設定してみました:
dataerror と言ってまだ空のコンボボックス列を取得しています
各コンボボックスセルに異なる値を追加するので、これは非常に難しいと思います。
誰でも、どうすればこれを機能させることができるか教えてください。
/一番
c# - 保存更新または削除アクションでの datagridvie の更新
私はc#でデータグリッドを使用しています.フォームを使用してデータベースを保存、更新、または削除すると、これらのアクションでグリッドが更新(更新)される必要があります.これを達成するにはどうすればよいですか?
c# - オブジェクトのリストとチェックボックス列を使用して単純な DataGridView を作成する (C#)
私は多くの場所を見てきましたが、このおそらく単純なことを行うのに苦労しています。このフォームで単純な DataGridView を表示する Windows フォームがあります。
| | (CheckBoxColumn) | ファイルパス | ファイル状態 |
さて、いくつかの問題があります。それらにバインドする必要があるデータは、次のようなオブジェクトのリストにあります。
- リスト内の Object のさまざまなメンバーがさまざまな列にバインドされ、それぞれにチェックボックスがあるように、これを DataGridView に直接バインドする効率的な方法はありますか?
- チェックボックス列をデータグリッドに追加する例を見ましたが、「すべてチェック」/「すべてチェック解除」ボックスとして動作できるように、「ヘッダー」行にも追加する方法を示していませんでした。
これを達成する方法についての助けは素晴らしいでしょう! 私は C# で単純なアプリケーションを作成しますが、データグリッドなどを扱う必要はありませんでした:(
ありがとう!