调用 MySql Table 时的自定义 DataGridview 宽度
Custom DataGridview Width when calling a MySql Table
我正在尝试制作一个程序,列出所选文件夹的所有子文件夹的名称,一切正常,但我似乎无法为我的 datagridview 自定义宽度,我一直在寻找答案几个小时,但他们大多不会工作,我试过了:
Gata.columns[0].width = 100;
或类似的东西,但它们不起作用。
这也不起作用:MSDN - DataGridViewColumn.Width Property
似乎它们主要用于未绑定的网格,我不知道我尝试 link 我的 MySql table 到一个但又失败了。这几乎是我正在编写的第二个程序,所以请原谅我的笨拙!
我希望我的 table 看起来像 picture here.
网格属性上的自动调整大小和填充语句无法解决问题。
我已经检查了很多关于堆栈溢出的答案,但 none 回答了这个问题。在此先感谢您的帮助!
这是我使用的代码:
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);
如果您的 DataGridView
是左右锚定的,就像您的屏幕截图中那样,您应该考虑使用 [DataGridViewColumn.FillWeight][1]
属性。 属性 允许您为每一列赋予权重,以便您可以判断哪一列必须是最大的。
您还应该看看 [DataGridViewColumn.AutoSizeMode][2]
属性。
在您的示例中,我会将 ID 和 Anime_root[=29= 的 AutoSizeMode
设置为 AllCells
] 列,AutoSizeMode
到 Fill
用于 Anime_name 列。
最后,您可以查看 [DataGridView.MinimumWidth][3]
属性 来定义列的最小宽度。
如果您使用默认的 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;
}
这必须有效,保证。如果你来对了请告诉我?
我正在尝试制作一个程序,列出所选文件夹的所有子文件夹的名称,一切正常,但我似乎无法为我的 datagridview 自定义宽度,我一直在寻找答案几个小时,但他们大多不会工作,我试过了:
Gata.columns[0].width = 100; 或类似的东西,但它们不起作用。
这也不起作用:MSDN - DataGridViewColumn.Width Property
似乎它们主要用于未绑定的网格,我不知道我尝试 link 我的 MySql table 到一个但又失败了。这几乎是我正在编写的第二个程序,所以请原谅我的笨拙!
我希望我的 table 看起来像 picture here.
网格属性上的自动调整大小和填充语句无法解决问题。 我已经检查了很多关于堆栈溢出的答案,但 none 回答了这个问题。在此先感谢您的帮助!
这是我使用的代码:
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);
如果您的 DataGridView
是左右锚定的,就像您的屏幕截图中那样,您应该考虑使用 [DataGridViewColumn.FillWeight][1]
属性。 属性 允许您为每一列赋予权重,以便您可以判断哪一列必须是最大的。
您还应该看看 [DataGridViewColumn.AutoSizeMode][2]
属性。
在您的示例中,我会将 ID 和 Anime_root[=29= 的 AutoSizeMode
设置为 AllCells
] 列,AutoSizeMode
到 Fill
用于 Anime_name 列。
最后,您可以查看 [DataGridView.MinimumWidth][3]
属性 来定义列的最小宽度。
如果您使用默认的 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;
}
这必须有效,保证。如果你来对了请告诉我?