自定义DataGridview调用MySql表时的宽度

时间:2016-05-23 05:53:35

标签: c# mysql datagridview datagridviewcolumn

我正在尝试制作一个程序,列出所选文件夹的所有子文件夹的名称,这一切都有效,但我似乎无法为我的datagridview制作自定义宽度,我一直在寻找一个小时的答案,但他们大多不会工作,我试过:

Gata.columns [0] .width = 100; 或类似的东西,但它们不起作用。

这也不起作用:MSDN - DataGridViewColumn.Width Property

似乎它们主要用于未绑定的网格,我不知道我试图将我的MySql表链接到一个但又失败了。这几乎是我写的第二个节目所以请原谅我的无聊!

我希望我的桌子看起来像picture here.

网格属性上的自动大小和填充语句不会起作用。 我已经检查了很多关于堆栈溢出的答案,但没有人回答这个问题。在此先感谢您的帮助!

这是使用的代码:

            try
            {
                String sqlcon = "datasource=localhost;port=3306;username=anime;password=anime";
                MySqlConnection myanimedb0con = new MySqlConnection(sqlcon);
                MySqlDataAdapter myanimedb0ada = new MySqlDataAdapter();
                MySqlCommand myanimedb0cmd = new MySqlCommand("insert into anime.anime0list ( Anime_Name , Anime_Root ) values ( '" + MySql.Data.MySqlClient.MySqlHelper.EscapeString(dir.Name) + "' , '" + dir.Parent + "' );", myanimedb0con);
                MySqlCommandBuilder myanimedb0cb = new MySqlCommandBuilder(myanimedb0ada);
                myanimedb0ada.SelectCommand = myanimedb0cmd;
                DataTable Gate = new DataTable();
                myanimedb0ada.Fill(Gate);
                BindingSource b0Gate = new BindingSource();
                b0Gate.DataSource = Gate;
                this.Gate.DataSource = b0Gate;
                myanimedb0ada.Update(Gate);

                // Updating the table after adding an item

                MySqlCommand myanimedb0cmd2 = new MySqlCommand("select * from anime.anime0list ;", myanimedb0con);

                myanimedb0ada.SelectCommand = myanimedb0cmd2;

                myanimedb0ada.Fill(Gate);
                b0Gate.DataSource = Gate;
                this.Gate.DataSource = b0Gate;
                myanimedb0ada.Update(Gate);

2 个答案:

答案 0 :(得分:0)

如果您的DataGridView左右固定,就像在屏幕截图中一样,您应该考虑使用[DataGridViewColumn.FillWeight][1]属性。此属性允许您为每列赋予权重,以便您可以确定哪一列必须是最大的。

您还应该查看[DataGridViewColumn.AutoSizeMode][2]属性。

在您的示例中,我会将AutoSizeMode设置为AllCells以获取 ID Anime_root 列,并AutoSizeMode设置为Fill 1}}用于 Anime_name 列。

最后,您可以查看[DataGridView.MinimumWidth][3]属性以定义列的最小宽度。

答案 1 :(得分:0)

如果您使用默认的Windows窗体或Web控件,一种方法是一次设置一个列宽:

private void Button5_Click(object sender, System.EventArgs e)
{
    DataGridViewColumn column = dataGridView.Columns[0];
    column.Width = 60;
}

如果您愿意,也可以按照此列进行操作:

for (int i = 0; i < DataGridView1.Columns.Count; i++)
{
    DataGridView1.Columns[i].Width = 30;
}

或者你可以在活动中操纵它......

dataGridView1.ColumnAdded += new DataGridViewColumnEventHandler(dataGridView1_ColumnAdded);   
void dataGridView1_ColumnAdded(object sender, DataGridViewColumnEventArgs e)   
{   
    e.Column.Width = 30;   
}

这必须起作用,gauranteed。如果你说对了,请告诉我?