问题描述
我已经使用Visual Studio的SQL Server Compact 3.5将数据集作为我的数据源创建了一个数据库和表.在我的WinForm上,我有一个包含3列的DataGridView.但是,我一直无法弄清楚如何使这些列占据DataGridView的整个宽度,如下图所示.
I have created a database and table using Visual Studio's SQL Server Compact 3.5 with a dataset as my datasource. On my WinForm I have a DataGridView with 3 columns. However, I have been unable to figure out how to get the columns to take up the full width of the DataGridView which is shown in the image below.
我想使缩写列变宽,然后使description列一直延伸到表单的边缘.有什么建议吗?
I want to make the abbreviates column wider and then have the description column extend all the way over to the edge of the form. Any suggestions?
更新:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace QuickNote
{
public partial class hyperTextForm : Form
{
private static hyperTextForm instance;
public hyperTextForm()
{
InitializeComponent();
this.WindowState = FormWindowState.Normal;
this.MdiParent = Application.OpenForms.OfType<Form1>().First();
}
public static hyperTextForm GetInstance()
{
if (instance == null || instance.IsDisposed)
{
instance = new hyperTextForm();
}
return instance;
}
private void abbreviationsBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.abbreviationsBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.keywordDBDataSet);
}
private void hyperTextForm_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'keywordDBDataSet.abbreviations' table. You can move, or remove it, as needed.
this.abbreviationsTableAdapter.Fill(this.keywordDBDataSet.abbreviations);
abbreviationsDataGridView.Columns[1].Width = 60;
abbreviationsDataGridView.Columns[2].Width = abbreviationsDataGridView.Width - abbreviationsDataGridView.Columns[0].Width - abbreviationsDataGridView.Columns[1].Width - 72;
}
}
}
推荐答案
您可以将abrbrev列的宽度设置为固定的像素宽度,然后将description列的宽度设置为DataGridView的宽度减去总和其他列的宽度和一些额外的边距(如果要防止水平滚动条出现在DataGridView上):
You could set the width of the abbrev column to a fixed pixel width, then set the width of the description column to the width of the DataGridView, minus the sum of the widths of the other columns and some extra margin (if you want to prevent a horizontal scrollbar from appearing on the DataGridView):
dataGridView1.Columns[1].Width = 108; // or whatever width works well for abbrev
dataGridView1.Columns[2].Width =
dataGridView1.Width
- dataGridView1.Columns[0].Width
- dataGridView1.Columns[1].Width
- 72; // this is an extra "margin" number of pixels
如果您希望描述列始终占据DataGridView宽度的余数",则可以将类似上面的代码的内容放在DataGridView的Resize
事件处理程序中.
If you wanted the description column to always take up the "remainder" of the width of the DataGridView, you could put something like the above code in a Resize
event handler of the DataGridView.
这篇关于如何在DataGridView中更改列宽?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!