Как сохранить соотношение сторон ширины столбца таблицы данных при изменении размера выигрышной формы
У меня есть одна выигрышная форма и одна сетка. Свойство Grid Dock установлено для заполнения. Когда я связываю свою сетку с данными, я также упоминаю всю ширину столбца таким образом.
dgList.DataSource = ds.Tables[0];
dgList.Columns[0].Width = 100;
dgList.Columns[1].Width = 100;
dgList.Columns[2].Width = 262;
dgList.Columns[3].Width = 530;
Поэтому я хотел бы знать, когда я изменю размеры своей формы, тогда высота и ширина сетки также будут пропорционально увеличиваться. Поэтому, когда высота и ширина сетки изменятся, я хочу увеличить или уменьшить столбец пропорционально по сравнению с предыдущей шириной столбца. Так как этого добиться. Благодарю.
я получил некоторый код из stackru, и они хороши для расчета соотношения сторон
1) var gcd = GCD(A, B);
return string.Format("{0}:{1}", A / gcd, B / gcd)
And a very basic function for calculating the GCD, using the Euclidean algorithm:
static int GCD(int a, int b) {
return b == 0 ? a : GCD(b, a % b);
}
2)
public int GCD(int a, int b)
{
while (a != 0 && b != 0)
{
if (a > b)
a %= b;
else
b %= a;
}
if (a == 0)
return b;
else
return a;
}
// Using Konrad's code:
var gcd = GCD(A, B);
return string.Format("{0}:{1}", A / gcd, B / gcd)
3)
private int FindHCF(int m, int n)
{
int temp, reminder;
if (m < n)
{
temp = m;
m = n;
n = temp;
}
while (true)
{
reminder = m % n;
if (reminder == 0)
return n;
else
m = n;
n = reminder;
}
}
So here is the rest of the code
int hcf = FindHcf(835, 625);
int factorW = 835 / hcf;
int factorH = 625 / hcf;
2 ответа
Решение
Скорее всего, вы ищете свойство DataGridViewColumn.FillWeight.
Для всех столбцов установите AutoSizeMode
свойство для заполнения. После этого при изменении размера столбцы также будут пропорционально увеличиваться и уменьшаться в ширине.