คำถามติดแท็ก datagridview

DataGridView เป็นตัวควบคุม Windows Forms ที่ใช้เพื่อแสดงและแก้ไขข้อมูลแบบตาราง


18
วิธีการเปลี่ยนสีแถวใน datagridview?
ฉันต้องการเปลี่ยนสีของแถวใดแถวหนึ่งใน DataGridview ของฉัน แถวควรเปลี่ยนเป็นสีแดงเมื่อค่าของ columncell 7 น้อยกว่าค่าใน columncell 10 คำแนะนำใด ๆ เกี่ยวกับวิธีการทำสิ่งนี้ให้สำเร็จ?

14
วิธีจัดการเหตุการณ์คลิกในคอลัมน์ปุ่มใน Datagridview
ฉันกำลังพัฒนาแอปพลิเคชัน windows โดยใช้ C # ฉันใช้DataGridViewเพื่อแสดงข้อมูล ฉันได้เพิ่มคอลัมน์ปุ่มในนั้น ฉันต้องการทราบว่าฉันจะจัดการเหตุการณ์คลิกบนปุ่มนั้นใน DataGridView ได้อย่างไร

7
คลิกขวาที่เมนูบริบทสำหรับ datagridview
ฉันมี datagridview ในแอป. NET winform ฉันต้องการคลิกขวาที่แถวและมีเมนูปรากฏขึ้น จากนั้นฉันต้องการเลือกสิ่งต่างๆเช่นคัดลอกตรวจสอบความถูกต้อง ฯลฯ ฉันจะสร้าง A) เมนูที่แสดงขึ้นได้อย่างไร B) ค้นหาว่าแถวใดถูกคลิกขวา ฉันรู้ว่าฉันสามารถใช้ selectedIndex ได้ แต่ฉันควรจะสามารถคลิกขวาได้โดยไม่ต้องเปลี่ยนสิ่งที่เลือก? ตอนนี้ฉันสามารถใช้ดัชนีที่เลือกได้ แต่ถ้ามีวิธีรับข้อมูลโดยไม่เปลี่ยนสิ่งที่เลือกนั่นก็จะเป็นประโยชน์

24
คุณจะปรับขนาดคอลัมน์โดยอัตโนมัติในตัวควบคุม DataGridView ได้อย่างไรและอนุญาตให้ผู้ใช้ปรับขนาดคอลัมน์บนกริดเดียวกันได้อย่างไร
ฉันกำลังเติมตัวควบคุม DataGridView บนฟอร์ม Windows (C # 2.0 ไม่ใช่ WPF) เป้าหมายของฉันคือการแสดงเส้นตารางที่เติมความกว้างที่มีอยู่ทั้งหมดด้วยเซลล์อย่างเรียบร้อยนั่นคือไม่มีพื้นที่ที่ไม่ได้ใช้ (สีเทาเข้ม) ลงทางด้านขวาและปรับขนาดแต่ละคอลัมน์ให้เหมาะสมตามข้อมูลที่มีแต่ยังช่วยให้ผู้ใช้สามารถปรับขนาดคอลัมน์ใดก็ได้ ตามความชอบของพวกเขา ฉันพยายามที่จะบรรลุสิ่งนี้โดยตั้งค่า AutoSizeMode ของแต่ละคอลัมน์เป็นDataGridViewAutoSizeColumnMode AllCellsยกเว้นคอลัมน์ใดคอลัมน์หนึ่งที่ฉันตั้งค่าเป็นDataGridViewAutoSizeColumnModeกรอกข้อมูลเพื่อให้แน่ใจว่าพื้นที่ทั้งหมดของกริดเต็มไปด้วยข้อมูลอย่างเรียบร้อย (ฉันไม่ทราบว่าเมื่อผู้ใช้พยายามปรับขนาดคอลัมน์นี้คอลัมน์นี้จะกลับมาเป็นขนาดที่ทำให้แน่ใจว่ามีการใช้พื้นที่แนวนอนเสมอ) อย่างไรก็ตามดังที่ได้กล่าวไปแล้วเมื่อโหลดแล้วฉันต้องการอนุญาตให้ผู้ใช้ปรับขนาดคอลัมน์ให้เหมาะกับความต้องการของตนเอง - ในการตั้งค่า AutoSizeMode เหล่านี้สำหรับแต่ละคอลัมน์ดูเหมือนว่าผู้ใช้จะไม่สามารถปรับขนาดคอลัมน์เหล่านั้นได้ ฉันพยายามไม่ตั้งค่า AutoSizeMode ของคอลัมน์ทั้งหมดที่อนุญาตให้ปรับขนาดได้ แต่ไม่ได้กำหนดขนาดเริ่มต้นตามข้อมูลในเซลล์ ผลลัพธ์เดียวกันนี้เกิดขึ้นเมื่อเปลี่ยน AutoSizeMode ของกริดกลับไปเป็น "Not Set" หลังจากโหลดข้อมูล มีการตั้งค่าที่ฉันขาดหายไปที่นี่ซึ่งอนุญาตให้ตั้งค่าความกว้างคอลัมน์เริ่มต้นและการปรับขนาดผู้ใช้โดยอัตโนมัติหรือมีเทคนิคอื่นที่ฉันต้องใช้เมื่อเติมข้อมูลตัวควบคุม DataGridView หรือไม่


5
ปุ่มในคอลัมน์รับแถวที่มาจากตัวจัดการเหตุการณ์คลิก
ฉันตั้งค่า itemsource ของ WPF Datagrid ของฉันเป็นรายการวัตถุที่ส่งคืนจาก 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มีวิธีใดบ้างที่ฉันจะได้รับแถวบนดาต้ากริดที่มีปุ่มอยู่ โดยเฉพาะอย่างยิ่งคุณสมบัติอย่างหนึ่งของวัตถุของฉันคือ "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" …

7
การกรอง DataGridView โดยไม่ต้องเปลี่ยนแหล่งข้อมูล
ฉันกำลังพัฒนาการควบคุมผู้ใช้ใน C # Visual Studio 2010 ซึ่งเป็นช่องข้อความ "ค้นหาอย่างรวดเร็ว" สำหรับการกรอง datagridview ควรใช้กับแหล่งข้อมูล datagridview 3 ประเภท ได้แก่ DataTable, DataBinding และ DataSet ปัญหาของฉันคือการกรอง DataTable จากวัตถุ DataSet ซึ่งแสดงบน DataGridView อาจมี 3 กรณี (ตัวอย่างสำหรับแอปพลิเคชัน WinForm มาตรฐานที่มี DataGridView และ TextBox อยู่) - 2 รายการแรกทำงานได้ดีฉันมีปัญหากับอันที่ 3: 1. datagridview.DataSource = dataTable: มันใช้งานได้ ดังนั้นฉันจึงสามารถกรองโดยการตั้งค่า: dataTable.DefaultView.RowFilter = "ประเทศ LIKE '% …


2
รายการ <T> กับ BindingList <T> ข้อดี / ข้อไม่ได้เปรียบ
ใครสามารถอธิบายความแตกต่างระหว่างทั้งสองสำหรับโครงการของฉัน ตอนนี้ฉันมีList&lt;MyClass&gt;และตั้งค่า BindingSource เป็นที่และ DataGridView เป็น BindingSource ฉันได้นำไปใช้IEditableObjectแล้วเมื่อเรียกว่า CancelEdit ฉันจะเปลี่ยนวัตถุของฉันกลับไปเป็นไฟล์Memberwise.Clone() การเปลี่ยนรายการของฉันเป็น BindingList จะช่วยแก้ปัญหานี้ได้หรือไม่และข้อดีของการใช้ BindingList คืออะไร?

2
Datagridview - ลบบางส่วนก่อนคอลัมน์แรก
ฉันสงสัยว่าเมื่อใช้ตัวควบคุมดาต้ากริดคุณสามารถลบสิ่งที่ดูเหมือนคอลัมน์ก่อนคอลัมน์ที่ 1 ได้หรือไม่ ฉันคิดว่ามันใช้เพื่อเลือกแถว แต่ไม่แน่ใจว่ามันเรียกว่าอะไร

17
จะตรวจจับการเปลี่ยนแปลงเหตุการณ์ DataGridView CheckBox ได้อย่างไร?
ฉันมีแอป winforms และต้องการเรียกใช้โค้ดบางอย่างเมื่อมีDataGridViewการเลือก / ไม่เลือกช่องทำเครื่องหมายที่ฝังอยู่ในการควบคุม ทุกเหตุการณ์ฉันพยายามอย่างใดอย่างหนึ่ง ทริกเกอร์ทันทีที่CheckBoxคลิก แต่ก่อนที่สถานะการตรวจสอบจะเปลี่ยนไปหรือ ทริกเกอร์เพียงครั้งเดียวที่CheckBoxสูญเสียโฟกัส ฉันไม่พบเหตุการณ์ที่ทริกเกอร์ทันทีหลังจากที่สถานะการตรวจสอบเปลี่ยนไป แก้ไข: สิ่งที่ฉันพยายามจะบรรลุคือเมื่อสถานะการตรวจสอบของการเปลี่ยนแปลงCheckBoxในหนึ่งเดียวDataGridViewข้อมูลในอีกสองรายการDataGridViewจะเปลี่ยนไป เหตุการณ์ทั้งหมดที่ฉันใช้ข้อมูลในกริดอื่น ๆ จะเปลี่ยนไปหลังจากที่CheckBoxในครั้งแรกDataGridViewสูญเสียโฟกัสเท่านั้น

5
Binding List <T> กับ DataGridView ใน WinForm
ฉันมีชั้นเรียน class Person{ public string Name {get; set;} public string Surname {get; set;} } และสิ่งList&lt;Person&gt;ที่ฉันเพิ่มบางรายการ รายการนี้ผูกไว้กับ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; ไม่มีปัญหา. myGridแสดงสองแถว แต่เมื่อฉันเพิ่มรายการใหม่ของฉันpersonsรายการmyGridไม่แสดงรายการปรับปรุงใหม่ แสดงเฉพาะสองแถวที่ฉันเพิ่มไว้ก่อนหน้านี้ แล้วปัญหาคืออะไร? การตอบกลับทุกครั้งใช้งานได้ดี แต่เมื่อผมผูกDataTableตารางเมื่อทุกครั้งที่ฉันจะทำให้การเปลี่ยนแปลงบางอย่างDataTableที่มีอยู่ไม่จำเป็นต้อง myGridrebind จะแก้ยังไงโดยไม่ตอกกลับทุกครั้ง?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.