簡體   English   中英

DataGridView 上的水平滾動條

[英]Horizontal Scroll Bar on DataGridView

有沒有辦法讓水平滾動條同時讓列的 AutoSizeMode 設置為填充?

我有 2 列,我希望它們填充 DataGridView 的寬度。 當行中內容的寬度超過DataGridView的寬度時,我想啟用水平滾動條。 不知道該怎么做。 通過我所做的研究,我發現在 AutoSizeMode 中使用“AllCell”選項可以啟用滾動條,但是,我希望行填充 DataGridView。

您不能同時具有兩種行為。
您將必須使用DataGridViewColumn.MinimumWidth屬性對其進行編碼。
這是一個使用DataGridViewCellValueChanged事件的示例(但您一定要使其適應特定情況):

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
    foreach (DataGridViewColumn column in dataGridView1.Columns)
        column.MinimumWidth = column.Width;
    dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
}

請注意,如果您的數據網格中有很多行,這可能會非常耗時。

有一個簡單的解決方法,盡管它顯然不理想:

  • 添加一個空的列,將AutoSizeMode設置為結尾
  • 並將最后一列的HeaderText設置為空字符串(很明顯,我在演示中忘了這樣做...)

這樣(幾乎)就好像第二列的AutoSizeMode設置為FIll。

在這里,Column1和Column2的AutoSizeMode設置為DisplayedCells,Column3設置為Fill:

在此處輸入圖片說明在此處輸入圖片說明

這是一個非常古老的帖子,但我想我會添加它。 如果您不介意將 AutoSizeMode 設置為 Fill。

將有問題的列的 AutoSizeMode 設置為 AllCells。

這將調整列標題的大小並強制它離開可見區域,從而顯示水平滾動條。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM