問題タブ [datagridviewtextboxcell]

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

c# - datagridview のマスクされた Textbox コントロール

Datagridview に TextboxColumn があります。通常、このコントロールにテキストを編集して入力するのは面倒です。このコントロールにテキストを簡単に入力できるようにしたいです。次の機能が必要です。

  1. のようなテキストを入力するためのより良いインターフェイス。

    • 複数行を入力するための複数行テキストボックス。
    • Enetring の次の行のユーザーは、SHIFT + ENTER の代わりに ENTER を使用できます。
    • 等々..........
  2. 各行が80文字を超えない最大8行の制限を入力します。

現在、私はこのコードを試しています。

しかし、次に何をすべきかわかりません。

ありがとう。

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

winforms - Datagridview セルの前景色の質問 (winform)

datagridview セル内にテキストをさまざまな色で表示する必要があります。

つまり、1 つの同じセル内で、複数の色を使用する必要があります。

どの色を適用するかは、各文字の値によって異なります。

どんな手掛かり?datagridview 以外のオブジェクトはありますか (たとえば、一種のテーブルなど)

セル内で複数のラベルを使用できれば機能しますが、どうすればよいのでしょうか?

0 投票する
8 に答える
32790 参照

c# - DataGridViewTextBoxColumnを編集してEnterKeyを押した後、次の行に移動しないようにするにはどうすればよいですか?

私はでプログラムに取り組んでいDataGridViewsます。1つには、ユーザーが編集できるようにするがありますDatagridViewDataGridViewTextBoxColumnユーザーが数字の入力を終えたら、キーボードのEnterキーを押します。これでDataGridViewすべてが実行Eventsされ、結局のところEvents、最後に問題が発生します。

すべてが完了し、Windowsが次を選択する予定DataGridViewRowです。これを防ぐことはできません。

私は試した

私が見つけたほぼすべてのイベントで。残念ながらDataGridViewTextBoxColumn、編集モードでない場合にのみ、ENTERキーを防ぐことができました。

編集中にENTERを見つける方法は次のとおりです

イベントの追加

そして、これは数値入力のみを受け入れるイベントです。

詳細に説明するには:

ユーザーがいくつかの依存関係がある値を入力すると、別のコントロールにフォーカスを与えたいので、彼は依存関係を修正するために使用されます。

私も試してみましたDependingControl.Focus()が、最後の「エンター」がビューの最後になります。

誰かがこれを防ぐ方法を知っていますか?

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

c# - 特定の DataGridView セルのテキストが折り返されているかどうかを判断する

ラップできるテキスト列を持つフォームに、データバインドされた datagridview があります。列が更新されると、行のコンテンツが折り返されている (したがって複数行) 場合でも、各行の高さは 1 行の高さに戻されます。

特定の行の列のデータが現在折り返されているかどうかをプログラムで判断できる必要があります。データが複数行になるのに十分な長さかどうかを確認するプロパティはありますか?

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

c# - ControlオブジェクトをDataGridViewTextBoxCellに追加します

派生したクラスがあり、そのセルにオブジェクト(TextBox、CheckBox ..など)DataGridViewTextBoxCellを追加したいのですForm.Controlが、新しいオブジェクトを追加できるコントロールオブジェクトがありません。

つまり、複数のコントロールオブジェクトを含むセルを作成したいと思います。何かする方法はありますか?

ありがとう

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

vb.net - vb.net DataGridview は、編集中のセルにカスタム ContextMenuStrip を表示します

datagridview にカスタム contextmenustrip を表示しようとしていますが、セルが編集されている場合を除いて正常に動作します。次に、コピー/カット/...を含むデフォルトのWindowsコンテキストメニューストリップを表示します

DataGridViewTextBoxCell contextmenustrip を上書きするか無効にする方法はありますか?

Disable DataGridView System ContextMenuの解決策は私にとってはうまくいきません。

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

.net - datagridview / datagridviewcellの編集制御を取得する方法は?

それによってホストされるコントロールとしてテキストボックスを備えたdatagridviewcellがあります。では、コードの他の部分でプログラムによって制御のタイプを取得するにはどうすればよいですか?

次のように列を追加します。

その列のすべてのセルにテキストボックスが表示されます。次のようなテキストボックスとしてコントロールを取得できます。

他の場所のセルでホストされているタイプのコントロールを取得するにはどうすればよいですか?コードの他の部分から取得e.Controlして、次のようなことができるようにする方法:

など。上記の行で何を置き換えることができEditinControlますか..??

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

c# - DataGridViewイベント

コントロールのTextBox列で、ユーザーが通常編集モードを終了するたびに(ユーザーが実際に値を変更したかどうかに関係なく、ユーザーがESCを押して編集モードをキャンセルした場合はそうではありません)、タスクを実行する必要がありますDataGridView

コントロール自体と編集コントロールのいくつかのイベントを試しましDataGridViewたが、どれも私が望むことを正確に実行しません。

DataGridView.CellValidatingおよびDataGridView.CellValidated

これらのイベントは、セルが編集モードでなかった場合でも、ユーザーが別のセルを選択するたびに発生します。イベントIsCurrentCellDirty内の物件を確認してみました。CellValidatingこれはほとんど私が必要としているものですがIsCurrentCellDirty、ユーザーが実際に値を変更したときにのみ設定されます。ただし、ユーザーが通常何も変更せずに編集モードを終了したときにも、タスクを実行する必要があります。これらのイベントは、ユーザーが編集モードをキャンセルしても発生しません。これは良いことです。

DataGridView.CellValueChanged

このイベントも頻繁に発生します(セルの値がプログラムで設定されている場合にも発生します)。

DataGridView.CellEndEdit

このイベントはほとんど私が望んでいるものです。ただし、ユーザーがESCを押して編集モードをキャンセルした場合にも発生します。CellEndEditイベント内で編集モードがキャンセルされたかどうかを確認する方法はありますか?

DataGridView.CellParsing

このイベントはほとんど私が望んでいるものです。ただし、ユーザーが何も変更せずに編集モードを終了しても起動されません。

ValidatingおよびValidated編集コントロールのイベント

イベント内でこれらのイベントに登録しDataGridView.EditingControlShowingました。それらは私が望むことをほぼ実行しますが、ユーザーがESCを押して編集モードをキャンセルしたときにも起動されます。これらのイベント内で編集モードがキャンセルされたかどうかを確認する方法はありますか?

登録できるイベントや、目的の動作を実現するために確認できるフラグに関するその他の提案はありますか?

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

c# - e.cancel は終了ボタンを許可する必要があります

ユーザーが DatagridView セルに無効な値を入力したときに、_CellValidating イベントで「e.Cancel = true」を設定しています。

e.Cancel は、ユーザーがフォームを閉じたり X ボタンを押したりすることもできないようです。どうすれば例外を追加できますか? (e.Cancel が true に設定されていても、ユーザーがフォームを閉じることを許可します)

0 投票する
0 に答える
254 参照

.net - ユーザーが DataGridViewTextBoxEditingControl のテキストの最後で下向き矢印を押したときに次のセルに進む方法

複数行のテキストセルを持つ DataGridView を持つ winforms アプリケーションがあります。DataGridViewTextBoxEditingControl のデフォルトの動作は奇妙に思えます。何らかの理由で、セルが編集されていて、選択がテキストの最後 (最後の行の最後の単語の最後) にある場合、ユーザーが下矢印キーを押すと、選択が元に戻ります。次のセルに移動するのではなく、(編集モードを終了せずに) そのセルのテキストの先頭に移動します。最後の行以外の行を編集中に下矢印キーを押すと、期待どおりに挿入ポイントが次の行に移動します。最後の行の編集中に下向き矢印が押されたが、行の最後ではなかった場合、編集が終了し、次のセル (下) が新しい現在のセルになります。この動作を変更する (良い/簡単な) 方法はありますか? 私はこの解決策を思いつきましたが、.Net コントロールのバグのように見えるものを修正するために厄介なコードを挿入しなければならないことにあまり満足していません。