2016-05-23 4 views
0

私は、選択したフォルダのすべてのサブフォルダの名前をリストするプログラムを作成しようとしています。すべて動作しますが、データグラムビューのカスタム幅を作るようです。何時間も答えを探していましたが、仕事がほとんどなかったので、私は試しました:MySqlテーブルを呼び出すときのカスタムDataGridviewの幅

Gata.columns [0] .width = 100; などですが、動作しません。

これはどちらか動作しませんでした:MSDN - DataGridViewColumn.Width Property

主に、私は私は1つに私のMySQLのテーブルをリンクしようとしたが、再び失敗について見当がつかないことを、結合していないグリッドのために使用されているようです。私が書いている2番目のプログラムですので、私のnoobishnessを許してください!

私は私のテーブルには文句を言わないトリックを行うpicture here.

自動サイズのように見えるし、グリッドの特性に声明を埋めたいです。 スタックオーバーフローに関する多くの答えを確認しましたが、これは答えません。助けを前にありがとう!ここ

を使用してコードイムです:あなたのスクリーンショットにあるように思わとしてあなたDataGridViewは、左右の固定されている場合

  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

一つの方法は、デフォルトのWindowsフォームやWebコントロールを使用している場合は、このような時に列幅1を設定することです:

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

ああ、私は2番目のコードを使用し、それはうまく動作します、最初のコードが動作しないいくつかの奇妙な理由のために、ありがとう、私は(MSDN)前にそれを試してみました。私の評判はあなたの答えを悲しげに投票できるようにしてくれませんでした! 1つの最後の質問は、それを与える場合はできますか?最初の列のようにテーブルの全幅の10%が必要ですか? –

+0

次のようにしてください:TableRow.Width = new Unit( "25%") – Sizons

+0

悲しいことに、最後のコードは機能しませんでしたが、問題なく動作するこのコードを書きました:int i = DataGridView.Width; FirstC =(i * 20)/ 100; DataGridView1.Columns [0] .Width = FirstC;もう一度時間を割いて質問に答えてくれてありがとう。 –

0

を、あなたは[DataGridViewColumn.FillWeight][1]プロパティを使用して検討すべきです。このプロパティを使用すると、各列に重み付けをして、どの列を最大のものにするかを指定できます。

[DataGridViewColumn.AutoSizeMode][2]プロパティも見てください。あなたの例では

、私はAnime_name列のFillからIDAnime_root列、およびAutoSizeModeためAllCellsAutoSizeModeを設定します。

最後に、[DataGridView.MinimumWidth][3]プロパティを見て、列の最小幅を定義することができます。それを行うには

+0

時間を割いて質問に答えてくれてありがとう! –

関連する問題