タグ付けされた質問 「datagridview」

DataGridViewは、表形式のデータを表示および編集するために使用されるWindowsフォームコントロールです。




7
datagridviewの右クリックコンテキストメニュー
.NET winformアプリにdatagridviewがあります。行を右クリックしてメニューをポップアップしたいのですが。次に、コピー、検証などを選択します A)メニューポップアップB)右クリックされた行を見つける方法 selectedIndexを使用できることはわかっていますが、選択内容を変更せずに右クリックできるはずですか?現時点では選択したインデックスを使用できますが、選択したものを変更せずにデータを取得する方法がある場合は、それが便利です。

24
DataGridViewコントロールの列のサイズを自動的に変更し、ユーザーが同じグリッドの列のサイズを変更できるようにするにはどうすればよいですか?
Windowsフォーム(WPFではなくC#2.0)にDataGridViewコントロールを設定しています。 私の目標は、使用可能なすべての幅をセルできれいに埋めるグリッドを表示することです。つまり、右下の未使用(暗い灰色)領域はなく、含まれるデータに応じて各列のサイズを適切に設定しますが、ユーザーが任意の列のサイズを変更することもできます彼らの好みに。 各グリッドのAutoSizeModeをDataGridViewAutoSizeColumnMode.AllCellsに設定することでこれを実現しようとしています。ただし、グリッドの領域全体にデータがきちんと入力されるように、DataGridViewAutoSizeColumnMode.Fillに設定した列の1つを除きます。(ユーザーがこの列のサイズを変更しようとすると、水平方向のスペースが常に使用されるようにサイズが跳ね返ることは問題ありません。) ただし、前述したように、一度読み込まれると、ユーザーが各自の要件に合わせて列のサイズを変更できるようにしたいと思います。各列にこれらのAutoSizeMode値を設定すると、ユーザーはそれらの列のサイズを変更できなくなるようです。 サイズ変更を許可するすべての列のAutoSizeModeを設定しないようにしましたが、セルに含まれるデータに応じて初期サイズが設定されません。データのロード後にグリッドのAutoSizeModeを「Not Set」に戻すと、同じ結果が発生します。 デフォルトの列幅の自動設定とユーザーによるサイズ変更を可能にする設定がここにありませんか、それともDataGridViewコントロールにデータを入力するときに使用する必要がある別のテクニックがありますか?


5
列内のボタン、クリックイベントハンドラーでの元の行を取得
WPF Datagridのitemsourceを、DALから返されたオブジェクトのリストに設定しました。ボタンを含む追加の列も追加しました。xamlは次のとおりです。 <toolkit:DataGridTemplateColumn MinWidth="100" Header="View"> <toolkit:DataGridTemplateColumn.CellTemplate> <DataTemplate> <Button Click="Button_Click">View Details</Button> </DataTemplate> </toolkit:DataGridTemplateColumn.CellTemplate> </toolkit:DataGridTemplateColumn> これは問題なくレンダリングされます。しかし、Button_Clickメソッドでは、ボタンが存在するデータグリッドの行を取得する方法はありますか?より具体的には、私のオブジェクトのプロパティの1つは "Id"であり、これをイベントハンドラーの別のフォームのコンストラクターに渡すことができるようにしたいと考えています。 private void Button_Click(object sender, RoutedEventArgs e) { //I need to know which row this button is on so I can retrieve the "id" } おそらく、xamlに何か特別なものが必要なのでしょうか、それとも、これを迂回的にしようとしているのでしょうか?どんな助け/アドバイスもありがたいです。


7
データソースを変更せずにDataGridViewをフィルタリングする
私はC#Visual Studio 2010でユーザーコントロールを開発しています-datagridviewをフィルタリングするための一種の「クイック検索」テキストボックス。これは、DataTable、DataBinding、DataSetの3種類のデータグリッドビューデータソースで機能します。私の問題は、DataGridViewに表示されるDataSetオブジェクトからDataTableをフィルタリングすることです。 3つのケースがある可能性があります(DataGridViewとTextBoxを備えた標準のWinFormアプリケーションの例)-最初の2つは問題なく動作し、3つ目は問題があります。 1. datagridview.DataSource = dataTable:機能する ので、次のように設定してフィルタリングできます。dataTable.DefaultView.RowFilter = "country LIKE '%s%'"; DataTable dt = new DataTable(); private void Form1_Load(object sender, EventArgs e) { dt.Columns.Add("id", typeof(int)); dt.Columns.Add("country", typeof(string)); dt.Rows.Add(new object[] { 1, "Belgium" }); dt.Rows.Add(new object[] { 2, "France" }); dt.Rows.Add(new object[] { 3, "Germany" }); dt.Rows.Add(new object[] { …


5
WinFormでDataGridViewにList <T>をバインド
クラスがあります class Person{ public string Name {get; set;} public string Surname {get; set;} } とList&lt;Person&gt;いくつかのアイテムを追加します。リストはmyにバインドされていDataGridViewます。 List&lt;Person&gt; persons = new List&lt;Person&gt;(); persons.Add(new Person(){Name="Joe", Surname="Black"}); persons.Add(new Person(){Name="Misha", Surname="Kozlov"}); myGrid.DataSource = persons; 問題はない。myGrid2つの行が表示されますが、新しいアイテムをpersonsリストに追加しても、myGrid更新された新しいリストは表示されません。前に追加した2行のみが表示されます。 それで問題は何ですか? 毎回再バインドはうまくいきます。しかしDataTable、グリッドにバインドするとき、変更を加えるたびDataTableにReBindする必要はありませんmyGrid。 毎回再バインドせずに解決するにはどうすればよいですか?

2
List <T>とBindingList <T>の長所/短所
この2つの違いが私のプロジェクトにとって何であるかを誰かが説明できますか? 現在、私はList&lt;MyClass&gt;BindingSourceをそれに設定し、DataGridViewをBindingSourceに設定しています。 IEditableObjectCancelEditが呼び出されたときにオブジェクトを元の状態に戻すように実装しました。Memberwise.Clone() リストをBindingListに変更すると、これは解決されますか?BindingListを使用する利点は何ですか?

16
DataGridView CheckBoxイベントの変更を検出する方法は?
WinFormsアプリがあり、コントロールに埋め込まれているチェックボックスDataGridViewがオン/オフになっているときにコードをトリガーしたいと思います。私が試したすべてのイベント CheckBoxクリックされるとすぐに、チェックされた状態が変わる前にトリガーされます。 CheckBoxフォーカスを失ったときにのみトリガーされます チェック状態が変化した直後にトリガーされるイベントが見つからないようです。 編集: 私が達成しようとしているのはCheckBox、1つのaのチェック状態がDataGridView変化すると、他DataGridViewの2つのsのデータも変化するということです。しかし、私が使用したすべてのイベントでは、他のグリッドのデータCheckBoxは、最初のグリッドがDataGridViewフォーカスを失った後にのみ変更されます。

8
List <string>をDataGridViewコントロールにバインドする方法は?
シンプルList&lt;string&gt;なものがあり、DataGridView列に表示したいのですが。 リストにさらに複雑なオブジェクトが含まれる場合は、単にリストをそのDataSourceプロパティの値として確立します。 しかし、これを行うとき: myDataGridView.DataSource = myStringList; という列Lengthが表示され、文字列の長さが表示されます。 リストの実際の文字列値を列に表示するにはどうすればよいですか?

10
DataGridViewの自動調整と塗りつぶし
に3つの列がありますDataGridView。私がやろうとしているのは、最初の2列をコンテンツの幅に自動的に合わせ、3列目を残りのスペースに埋めることです。 WinFormsで実行することは可能ですか?EF DataContextを使用する場合は、データをロードしています。私はそれが現在どのように見えるかの画像を含めました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.