問題タブ [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.

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

c# - DataGridView.RowValidatingイベントがユーザーインタラクションとBindingSourceリストの変更によるものであることをどのように検出できますか?

私はついに週末を通して取り組んできたバグを突き止めましたが、それを本当に解決する方法がわかりません。つまり、クリーンな方法で。

状況は、ビジネスオブジェクトのリストにバインドされているDGVコントロールを持っているということです。列の1つはデータソースにバインドされておらず、このセルのデータの永続性を処理するためにCellParsingイベントとCellFormattingイベントを接続しました。私は基本的に.netデータバインディングを回避し、自分の貧弱なバージョンを実装しました。これは意図的なものではなく、解析とフォーマットの要件が複雑な非常に古いコードであり、バインドされていない列に基づくソリューションを誤って実装しました。これを処理する正しい方法がわかったので、コードを修正しましたが、別の方法でバグを解決する方法を知りたいと思います。

RowValidatingイベントを処理し、行全体に対して1つの最終検証を実行して、すべてがクールであることを確認します。もちろん、問題がある場合は検証をキャンセルし、行はコミットされません。これはすべて、ユーザーがUIインタラクションを介して行を編集および追加している場合は正常に機能しますが、データソースが設定されている場合は問題が発生します。問題、DGVが内部リストを更新して行を作成するときにCellFormattingが呼び出されないか、少なくとも検証イベントが発生する前に呼び出されないことであると思われます。これにより、RowValidatingハンドラーがUnbound列からnull値をプルします(CellFormattingが呼び出されておらず、値がまだ設定されていないため)。

DGVに関する知識を更新し、CellValueNeededイベントの処理がチケットになる可能性があると考えましたが、DataGridViewCellValueEventArgs.Valueを設定しても、期待したようにCellFormattingイベントがトリガーされませんでした。

私はこの状況を処理する方法を考えていました。私が思いついたのは、最初のバインディングやバインドされたリストの変更ではなく、UIイベントから検証がトリガーされたときを検出することだけです。これはハッキーな解決策であるだけでなく、それがどのように行われるのかわかりません。

問題を説明する完全なサンプルアプリケーションを作成しました。このような問題をどのように解決してくれるのか、本当に興味があります。ここには大きなデザインの匂いがあるようです。

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

c# - DataGridViewの並べ替え(列および昇順/降順)の取得と設定

小さな問題があります。並べ替え(列と昇順または降順)を保存して、プログラムの次の開始時にロードする必要があります。現在選択されている列を取得することは問題ありません。

そして、私の設定でデータを保存します。このプロパティの設定も問題ありません。

ただし、昇順または降順のプロパティも保存して設定する必要があります。どうすればよいですか?dataGridView.SortedColumnを使用してListSortDirectionを取得する方法はありますか?または、dataGridViewが昇順または降順でソートされているかどうかを設定するためのより良い解決策はありますか?

ありがとう、あいさつ!レイジン

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

c# - プロパティ ウィンドウで変更するとカスタム プロパティが保存されない

DataGridView のカスタム列を作成しました。その理由は、列にプロパティ (型) を追加したいからです。DataGridView を右クリックし、[列の編集...] を選択します。次に、カスタム列タイプの列を選択するとプロパティを編集できますが、編集後に「OK」をクリックしてから「列の編集...」に再度移動すると、プロパティに割り当てた値が表示されますなくなっている。

これが私のコードです:

プロパティウィンドウの画像:

適切なウィンドウのイメージ

プロパティウィンドウで値を変更すると、その値がプロパティに割り当てられるように、誰かが私が間違っていること、または追加する必要があることを教えてもらえますか?

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

c# - C#を使用したExcelシートのセル表示の日付と時刻

Excel シートを DataGridView にインポートしています。セルの 1 つに 2017 年 5 月 6 日という日付があります。

日付のみを表示する方法を教えてください。

ありがとう !

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

.net - DataGridView列が互いに積み重ねられているのはなぜですか?

WinFormには、DataGridViewと列があります。奇妙な理由で、プログラムを実行すると、実行時に列が互いに積み重ねられます。私が何をしても変わらない。特定のプロパティを設定しているのか、何を設定しているのかわかりません。

設計時:

ここに画像の説明を入力してください

実行時:

ここに画像の説明を入力してください

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

c# - DataGridView autoComplete コンボボックス列が最初のセルを離れたときに値を保持しない

私は autoComplete コンボボックス列を持つバインドされた dataGridView を持っています。

初めてオートコンプリート セルにテキストを入力し、tabKey を使用して次のセルに移動すると、選択内容が保持されず、選択内容がクリアされ、オートコンプリート セルが null のままになります。すぐに左矢印キーを使用してそのオートコンプリート セルに戻り、テキストを入力すると、選択した内容が問題なく保持されます。

したがって、問題は、セルに最初の最初の選択を保持させることです。現在の唯一の回避策は、Tab キーを押して次のセルに移動し、この問題のある autoComplete コンボボックス セルに戻って、全体を入力することです。この時点で、それは機能します。

セルを離れるときに選択したテキストをコミットするために処理する必要があるイベントはありますか?

コード:

編集:以下のCellLeaveでは、選択を行った場合でも値がnullとして返されます。

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

c# - 異なる値リストを持つコンボボックスセルを使用してテキストボックスとコンボボックスを DataGridView に設定する方法

私は3つの列、テキストボックス、コンボボックス、テキストボックスをこの順序で持っています:

そして、それらは次のように datagridview に表示されます。

後で、次のように各コンボボックス セルに異なる値を追加しようとします。

これにより、最初の列と最後の列が入力され、コンボボックス列が空のデータグリッドが生成されます。私が扱うデータエラーで。メッセージは次のとおりです。

ほとんどの投稿を読みましたが、これに対する解決策が見つかりません。

次のようにデータソースを設定してみました:

dataerror と言ってまだ空のコンボボックス列を取得しています

各コンボボックスセルに異なる値を追加するので、これは非常に難しいと思います。

誰でも、どうすればこれを機能させることができるか教えてください。

/一番

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

c# - 保存更新または削除アクションでの datagridvie の更新

私はc#でデータグリッドを使用しています.フォームを使用してデータベースを保存、更新、または削除すると、これらのアクションでグリッドが更新(更新)される必要があります.これを達成するにはどうすればよいですか?

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

c# - オブジェクトのリストとチェックボックス列を使用して単純な DataGridView を作成する (C#)

私は多くの場所を見てきましたが、このおそらく単純なことを行うのに苦労しています。このフォームで単純な DataGridView を表示する Windows フォームがあります。

| | (CheckBoxColumn) | ファイルパス | ファイル状態 |

さて、いくつかの問題があります。それらにバインドする必要があるデータは、次のようなオブジェクトのリストにあります。

  • リスト内の Object のさまざまなメンバーがさまざまな列にバインドされ、それぞれにチェックボックスがあるように、これを DataGridView に直接バインドする効率的な方法はありますか?
  • チェックボックス列をデータグリッドに追加する例を見ましたが、「すべてチェック」/「すべてチェック解除」ボックスとして動作できるように、「ヘッダー」行にも追加する方法を示していませんでした。

これを達成する方法についての助けは素晴らしいでしょう! 私は C# で単純なアプリケーションを作成しますが、データグリッドなどを扱う必要はありませんでした:(

ありがとう!