2013-06-25 74 views
0

基本上我有下面的代码来调出3个不同的datagrid视图,取决于点击的按钮。显示datagridview中的所有列

public partial class ChooseDB : Form 
    { 
    private DataGridView doctorsDataGridView = new DataGridView(); 
    private DataGridView patientsDataGridView = new DataGridView(); 
    private DataGridView hospitalsDataGridView = new DataGridView(); 

    public ChooseDB() 
    { 
     InitializeComponent(); 
    } 

    public void buttonDoctorsDB_Click(object sender, EventArgs e) 
    { 
     doctorsDataGridView.DataSource = doctorsDataSet.Doctors; 
     doctorsDataGridView.Dock = DockStyle.Right; 
     if (Controls.Contains(patientsDataGridView)) 
      Controls.Remove(patientsDataGridView); 
     if (Controls.Contains(hospitalsDataGridView)) 
      Controls.Remove(hospitalsDataGridView); 
     this.Controls.Add(doctorsDataGridView); 
    } 

    public void buttonPatientsDB_Click(object sender, EventArgs e) 
    { 
     patientsDataGridView.DataSource = patientsDataSet.Patients; 
     patientsDataGridView.Dock = DockStyle.Right; 
     if (Controls.Contains(doctorsDataGridView)) 
      Controls.Remove(doctorsDataGridView); 
     if (Controls.Contains(hospitalsDataGridView)) 
      Controls.Remove(hospitalsDataGridView); 
     this.Controls.Add(patientsDataGridView); 
    } 

    public void buttonHospitalsDB_Click(object sender, EventArgs e) 
    { 
     hospitalsDataGridView.DataSource = hospitalsDataSet.Hospitals; 
     hospitalsDataGridView.Dock = DockStyle.Right; 
     if (Controls.Contains(patientsDataGridView)) 
      Controls.Remove(patientsDataGridView); 
     if (Controls.Contains(doctorsDataGridView)) 
      Controls.Remove(doctorsDataGridView); 
     this.Controls.Add(hospitalsDataGridView); 
    } 
} 

}

到目前为止好,但表,它带来了在所有“smooshed”到

我已经检查了自动调整大小上,但还没有找到如何正确专门将其应用于我的代码。 我希望它显示所有的列,而不是只显示前两个,然后在thaootom给滚动条。

我假设在这里,autosizing是正确的路要走,如果不是,请将我设置在正确的道路上。

回答

0

默认情况下,数据网格视图的自动调整大小(可能会设置为'显示的单元格')。您的第一个数据网格视图看起来是否正常(所有3列都显示),但其随后的视图会出现缩放?

在我的应用程序之一,我处理Form1_Load事件中的自动调整大小。

private void Form1_Load(object sender, EventArgs e) 
    { 
     GetICD10(); 
     FreezeBand(dataGridView1.Columns[0]); // Client requested to have ICD code column "frozen" by default 

     // Cannot seem to select both autosize and allow user to size in designer, so below is the "code around". 
     // Designer has autosize set to displayedcells. 
     dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None; // Turn off autosize 
     dataGridView1.AllowUserToResizeRows = true;         // Turn on letting user size columns 
     dataGridView1.AllowUserToOrderColumns = true; 

     // Create tooltip and populate it 
     var toolTip1 = new ToolTip { AutoPopDelay = 5000, InitialDelay = 1000, ReshowDelay = 500, ShowAlways = true }; 
     toolTip1.SetToolTip(tbCode, "Enter an ICD code to search for"); 
     toolTip1.SetToolTip(tbDescriptionLong, "Enter a description to search for"); 


    }