問題タブ [datagridview]

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 に答える
6385 参照

.net - DataGridViewマウスの選択

WindowsフォームアプリケーションでDataGridViewコントロールを使用しています。ユーザーがコントロールを押したまま複数のアイテムを選択すると、正常に機能します。これで、ユーザーがコントロールを放し、クリック(およびマウスの左ボタンを押したまま)してドラッグ操作を開始すると、選択が変更されます。ユーザーがマウスの左ボタンを押したときに選択がクリアされないようにするにはどうすればよいですか?

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

.net - セルの値に基づいて DataGridView の行の背景色を変更する方法は?

DataTable の内容を表示する DataGridView があります。

この行のセルの値に基づいて、行の背景色を設定したいと考えています。

問題のセルは、DataGridView (Visible=False) に表示されない列にあることに注意してください。

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

.net - グリッドが並べ替えられた DataView にバインドされているときに、選択した DataGridView の行を新しく追加された行に設定する方法は?

私は にDataGridViewバインドしていDataViewます。グリッドは、ユーザーが任意の列で並べ替えることができます。

DataViewの基になる でNewRow を呼び出してグリッドに行を追加しDataTable、それをDataTableの Rows コレクションに追加します。グリッドに新しく追加された行を選択するにはどうすればよいですか?

BindingManagerBaseの にバインドされたオブジェクトを作成してから、 を設定してみBindingContextましDataViewBindingManagerBase.Position = BindingManagerBase.Count。新しい行がグリッドの下部に追加されるため、これはグリッドがソートされていない場合に機能します。ただし、行が一番下に追加されないような並べ替え順序の場合、これは機能しません。

グリッドの選択した行を新しい行に確実に設定するにはどうすればよいですか?

0 投票する
4 に答える
552 参照

.net - 特定の System.Windows.Forms.KeyEventArgs の値に基づいて、ユーザーが入力した印刷可能な文字は何ですか?

問題の回避策として、KeyDown イベントを処理して、ユーザーが実際に入力した印刷可能な文字を取得する必要があると思います。

KeyDown は、プロパティ KeyCode、KeyData、KeyValue、Modifiers、Alt、Shift、Control を持つ KeyEventArgs オブジェクトを提供します。

私の最初の試みは、KeyCode を ASCII コードと見なすことだけでしたが、キーボードの KeyCode は 46、ピリオド (".") であるため、ユーザーが削除キーを入力するとピリオドを出力してしまいます。だから、私は私の論理が不十分であることを知っています。

(興味のある方のために説明すると、問題は、DataGridView のコントロール コレクションに独自のコンボボックスがあり、入力した一部の文字が KeyPress および TextChanged ComboBox イベントを生成しないことです。これらの文字には、Q、$、% が含まれます....

このコードは問題を再現します。フォーム アプリを生成し、ctor をこのコードに置き換えます。それを実行し、文字 Q を 2 つのコンボボックスに入力してみてください。

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

c# - DataGridView にバインドされるプロパティを動的に設定する方法は?

私の DataGridView は多くの型をサポートする必要があり、これらの型には任意の数のパブリック プロパティがあり、すべてを表示したいわけではありません。

クラスをデータソースにバインドするときに、DataGridView の列を動的にカスタマイズする方法を提案できる人はいますか? たとえば、プロパティを列として使用するかどうかをコントロールに伝える属性はありますか?

アドバイスをいただければ幸いです。

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

c# - DataGridViewのComboBox子を取得して、「。」を含むすべてのキーを処理するにはどうすればよいですか?

以下の投稿で説明されているのと同じ問題があります。つまり、特定のキーをコンボボックスに入力すると、最初にスペースバーを押すまでまったく機能しません。キーの1つは「。」ですが、もう1つは文字「Q」であり、他にも「$」、「%」があります。

http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=659716&SiteID=1
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2909173&SiteID=1&pageid=0
http://bytes。 com / forum / thread548399.html

私はこれまでたくさんのことを試しました。私の最近の失敗は、おそらくDataGridViewがWIN32 API wndprocサブクラス化を使用してメッセージをインターセプトしているという理論に基づいていたため、古いwndprocを保存し、DataGridViewのコントロールコレクションに追加した後に復元するロジックを作成しました。それはうまくいきませんでした。

メッシーナ-Spy++について思い出させてくれてありがとう。文字「A」の場合、編集ウィンドウはEN_UPDATEをコンボボックスの親に送信します。しかし、「Q」ではありません。それはとても奇妙です。

作成直後とグリッドのコレクションに追加する前、そして後でペイントするときにwndprocのアドレスを確認するため、DataGridViewがコンボと編集をサブクラス化していないことを確信しました。グリッドが何らかのグローバルフックをインストールしない限り。

私は考えています、多分私は編集コントロールをサブクラス化して、それから私がここで行っている編集コントロールを見る方法でコンボボックスに通知を送ることができますか?

編集:詳細はこちら。Spy ++のグリッド、コンボボックス、および編集コントロールからのWindowsメッセージ:

HWND:122064e<グリッド010d0674<コンボボックス01360696<コンボボックスの編集コントロール

手紙q

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

.net - DataGridViewComboBoxColumn でセルの ComboBox スタイルを変更する方法

DataGridViewComboBoxColumn のセルには ComboBoxStyle DropDownList があります。これは、ユーザーがドロップダウンからのみ値を選択できることを意味します。基になるコントロールは ComboBox であるため、DropDown スタイルを持つことができます。DataGridViewComboBoxColumn の基になるコンボ ボックスのスタイルを変更するにはどうすればよいですか。または、より一般的には、ユーザーが入力できるドロップダウンを使用して DataGridView に列を作成できますか?

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

.net - ユーザーが追加プロセスをキャンセルしたときに、追加中の DataGridView 行を削除する方法は?

私は databound を持っていますDataGridView。新しい行が追加され、ユーザーが押すと、Esc行全体を削除したい。これどうやってするの?

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

c# - DataGridView のカスタム編集コントロールから CellValueChanged を発生させる

数字のみを許可する DataGridViewTextBoxEditingControl から派生したカスタム EditingControl を定義した DataGridView (WinForms) があります。

ユーザーがキーを押すたびに DataGridView で CellValueChanged イベントを発生させる必要がありますが、デフォルトの動作では、編集が完了した場合にのみイベントが発生します。

キーが押されるたびにイベントを発生させるにはどうすればよいですか?

アップデート:

回避策を見つけましたが、それが良い解決策かどうかはわかりません:

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

visual-studio - 2 つのデータ ソースを持つ ComboBox 列を作成する方法 (DataGridView の場合)

データ ソースの構造は同じですが、データが異なります。1 つは保存される行 (表示モード) に使用され、もう 1 つは追加または編集される行 (編集/新しい行) に使用されます。どうすればそれを達成できますか。

ID、名前、およびアクティブ (ビット) を持つ標準のルックアップ テーブルを参照する標準の外部キー列があります。コンボ ボックス列は、そのルックアップ テーブルを使用してリストを表示しますが、アクティブなアイテムのみを表示します。ルックアップ アイテムが使用され、後で非アクティブ化されたとします (アクティブ = 0)。ID がリストに見つからないため、コンボ ボックスの列にエラーが表示されるようになりました。誰かがそれを解決する方法を知っていますか?