2016-05-23 2 views
0

Я пытаюсь создать программу, в которой перечислены имена всех подпапок выбранной папки, все это работает, но я не могу создать пользовательскую ширину для моего datagridview, вы искали ответ в течение нескольких часов, но в основном они не работают, я пытался:Пользовательская ширина DataGridview при вызове таблицы MySql

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); 
+0

Пожалуйста, добавьте ваш код и ошибку, которую вы получите, если таковые имеются. – Sizons

+0

Я не получаю никаких ошибок прямо сейчас, а код выше - это то, что я использую прямо сейчас, чтобы вызвать таблицу из базы данных mysql. –

ответ

0

Один из способов сделать это, чтобы установить ширину столбца один в то время, как это, если вы используете окна по умолчанию формы или веб-элементы управления:

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; 
} 

Это имеет вес ork, gauranteed. Пожалуйста, дайте мне знать, если вы пойдете?

+0

А, я использовал второй код, и он работает отлично, большое спасибо, по какой-то странной причине первый код не работает, я пробовал его раньше (MSDN). моя репутация не позволит мне выслушать ваш ответ печально! один последний вопрос, может ли дать ему%? как первый столбец занимает 10% от общей ширины таблицы? –

+0

Попробуйте что-то вроде этого: TableRow.Width = new Unit ("25%") – Sizons

+0

К сожалению, последний код не работал, но я написал этот файл, который работает без проблем: int i = DataGridView.Width; FirstC = (i * 20)/100; DataGridView1.Columns [0] .Width = FirstC; еще раз спасибо за то, что нашли время и ответили на мой вопрос. –

0

Если DataGridView закреплен слева и справа, как это, кажется, в вашем скриншоте, вы должны рассмотреть вопрос об использовании [DataGridViewColumn.FillWeight][1] собственности. Это свойство позволяет вам придать вес каждому столбцу, чтобы вы могли определить, какой из них должен быть самым большим.

Вы также должны посмотреть на [DataGridViewColumn.AutoSizeMode][2].

В вашем примере, я установил бы AutoSizeMode в AllCells для ID и Anime_root колонн и AutoSizeMode к Fill для Anime_name колонка.

Наконец, вы можете посмотреть свойство [DataGridView.MinimumWidth][3], чтобы определить минимальную ширину столбцов.

+0

спасибо, что нашли время и ответили на мой вопрос! –

Смежные вопросы