Пробел DataGridView после последнего заголовка столбца

Статическая инициализация класса, как гарантируют, будет ориентирована на многопотоковое исполнение Java.

6
задан KyleMit 14 January 2014 в 18:39
поделиться

4 ответа

Попробовать

Dim dt As New DataTable()
dt.Columns.Add("a")
dt.Columns.Add("b")
dt.Rows.Add(dt.NewRow())
dt.Rows.Add(dt.NewRow())
dt.Rows.Add(dt.NewRow())
dt.Rows.Add(dt.NewRow())
dt.Rows.Add(dt.NewRow())
dt.Rows.Add(dt.NewRow())
dt.Columns.Add(" ")
dt.AcceptChanges()
DataGridView1.DataSource = dt
DataGridView1.AutoSize = True
DataGridView1.Columns(2).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
DataGridView1.Columns(2).Resizable = DataGridViewTriState.False
6
ответ дан 17 December 2019 в 02:31
поделиться

Хотя это не отвечает на ваш вопрос, альтернативой может быть установка AutoSizeColumnsMode на Fill ].

0
ответ дан 17 December 2019 в 02:31
поделиться

IMO, лучший (и наиболее эффективный) способ сделать это - создать дополнительный столбец в конце, чтобы он "съел" (или " занимают ») пространство, которое не занято другими столбцами. Чтобы сделать это, установите для свойства AutoSizeMode значение Fill .

Вот пример кода:

DataGridView grid = new DataGridView();
DataTable data = new DataTable();

//add columns, rows, etc. to DataTable data
data.Columns.Add("This is the first column."); data.Rows.Add(data.NewRow());
//etc.

//Add EXTRA column:

data.Columns.Add(""); //blank header

//Save changes

data.AcceptChanges();

//Set datasource
grid.DataSource = data;

Теперь у вас есть сетка с дополнительным пустым столбцом . Мы должны установить для столбца правильные свойства:

data.Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; //Sets AutoSizeMode to fill, as explained above, for 2nd column

Кроме того, как объяснил Наджамеддин, вы можете захотеть установить следующие свойства:

ReadOnly = true;

SortMode = NotSortable;

По сути, вы создаете пустой столбец, который занимает пустое пространство.

PS Я только что заметил, что у surajitkhamrai очень похожий образец кода, но мой - на C #, однако концепция осталась прежней.

0
ответ дан 17 December 2019 в 02:31
поделиться

Лучше всего использовать файлы rda. Вы можете использовать команды save () и load () , чтобы писать и читать:

set.seed(101)
a = data.frame(x1=runif(10), x2=runif(10), x3=runif(10))

save(a, file="test.rda")
load("test.rda")

Изменить: Для полноты, просто чтобы показать, как может выглядеть предложение Харлана ( т.е. обертывание команды загрузки для возврата фрейма данных):

loadx <- function(x, file) {
  load(file)
  return(x)
}  

loadx(a, "test.rda")

В качестве альтернативы, посмотрите пакеты hdf5, RNetCDF и ncdf. Я экспериментировал с пакетом hdf5 в прошлом; здесь используется библиотека NCSA HDF5 . Это очень просто:

hdf5save(fileout, ...)
hdf5load(file, load = TRUE, verbosity = 0, tidy = FALSE)

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

Вот тривиальный пример. Сначала напишите данные с помощью "w" и добавьте "b"

0
ответ дан 17 December 2019 в 02:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: