![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#16
|
|
у меня тоже есть вопрос:
имеется форма с кнопками на запуск разных программ (например word и excel). Возможно ли сделать так, чтобы эти приложения открывались на этой же форме, но на другой вкладке, как к примеру работает opera. |
|
|
|
|
| Реклама: | Магазин бытовой техники: stn 200 d - переходи на сайт ТАЙМТВ! | хунхузы красный шелк | Мебельный магазин: письменный стол угловой с полками и ящиками - Переходи на сайт! | речной круиз по волге москва волгоград астрахань москва? | vl g20 инструкция vilmann где ошибки посмотреть |
|
|
#17
|
|
Неактивный пользователь
Пол:
Регистрация: 07.06.2009
Сообщений: 7
Репутация: 0
|
|
|
|
|
|
|
#18
|
|
Неактивный пользователь
Пол:
Регистрация: 11.02.2007
Сообщений: 13
Репутация: 4
|
Нет проблем, ставишь на форму tabControl, делаешь сколько тебе нужно вкладок и описываешь логику нажатия кнопок, делов то на 5 минут. |
|
|
|
|
|
#19
|
|||||||||||||||||||||||
|
Новичок
![]() ![]() Пол:
Регистрация: 02.11.2007
Сообщений: 26
Репутация: 14
|
На этой же форме они не откроются. Для того, чтоб страница эксель была на форме нужно использовать ActiveX компоненты. |
|||||||||||||||||||||||
|
|
|
|
|
#20
|
|||||||||||||||||||||||
|
Неактивный пользователь
Пол:
Регистрация: 11.01.2009
Сообщений: 9
Репутация: 0
|
Вы не правы. Можно, правда придется повозится. Вот пример из лично написанной проги. Фрагмент: Код:
using Excel = Microsoft.Office.Interop.Excel;
.....
.....
System.Globalization.CultureInfo oldCI = System.Threading.Thread.CurrentThread.CurrentCulture;
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
excelapp = new Excel.Application();
excelapp.Visible = true;
excelappworkbooks = excelapp.Workbooks;
//Открываем книгу и получаем на нее ссылку
excelappworkbook = excelapp.Workbooks.Open(path_pril + @"\Excel\in1.xls",
Type.Missing, Type.Missing, Type.Missing,
"WWWWW", "WWWWW", Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
//Получаем массив ссылок на листы выбранной книги
excelsheets = excelappworkbook.Worksheets;
// Работаем со вкладкой Сервера
excelworksheet = (Excel.Worksheet)excelsheets.get_Item(3);
//Делаем третий лист активным
//excelworksheet.Activate();
//Вывод в ячейки используя номер строки и столбца Cells[строка, столбец]
// У меня 13 вместо текстового поля
for (int m = 8; m < Convert.ToInt16(textBox_servers.Text.ToString()) + 8; m++)
{
for (int n = 4; n < countDsColumn3 + 4; n++)
{
//ondate
if (n == 29 || n == 30)
{
excelcells = (Excel.Range)excelworksheet.Cells[m, n];
//Выводим координаты ячеек
ds3.Tables[0].Rows[m - 8][n - 4] = DateTime.FromOADate(Convert.ToDouble(excelcells.Value2));
//listBox1.Items.Add((n-4).ToString() + " " + (m-8).ToString() + "|");
}
else if (n == 4 || n==20 || n==21 || n ==23 || n==24 || n==25)
{
excelcells = (Excel.Range)excelworksheet.Cells[m, n];
//Выводим координаты ячеек
ds3.Tables[0].Rows[m - 8][n - 4] = Convert.ToInt32(excelcells.Value2);
//listBox1.Items.Add((n-4).ToString() + " " + (m-8).ToString() + "|");
}
else
{
//listBox1.Items.Add((n - 4).ToString() + " " + (m - 8).ToString() + "|");
excelcells = (Excel.Range)excelworksheet.Cells[m, n];
//Выводим координаты ячеек
ds3.Tables[0].Rows[m - 8][n - 4] = Convert.ToString(excelcells.Value2);
}
}
ds3.Tables[0].Rows.Add(m - 8);
}
|
|||||||||||||||||||||||
|
|
|
|
|
#21
|
|||||||||||||||||||||||
|
Новичок
![]() ![]() Пол:
Регистрация: 02.11.2007
Сообщений: 26
Репутация: 14
|
Не соглашусь с Вами. В приведенном фрагменте кода вы используете Com объект экселя и работаете с данными из книги. Я и не отрицал что это можно делать. Но вопрос то был про то, что можно ли открывать эксель на этой же форме, чтобы собственно это приложение работало внутри формы. |
|||||||||||||||||||||||
|
|
|
|
|
#22
|
|
Неактивный пользователь
Пол:
Регистрация: 11.01.2009
Сообщений: 9
Репутация: 0
|
Согласен что com взаимодействие. я думаю не очень человека интересует "как", интересует "результат", а результат очевиден: работа с файлами xls. Никто не мешает менять данные и таким же макаром писать обратно в файл.
Хотя тема для новичков, так наверное немного не по теме мы тут дискутируем.. простым путем эту задачу не выполнить. |
|
|
|
|
|
#23
|
|||||||||||||||||||||||
|
Новичок
Пол:
Регистрация: 10.02.2008
Сообщений: 8
Репутация: 1
|
Тут нужно просто определиться что требуется сделать с документом - отобразить его на форме или работать с его содержимым программно. Для отображения документа проще всего закинуть на вкладку WebBrowser и ему передавать ссылки на документы ворда или екселя - он сам все необходимые действия для запуска и отображения документов выполнит. Возиться самому со встраиванием на формы объектов через ActiveX муторно и ненадежно, явно не для новичков. А для программной работы с документами лучше работать не через СОМ напрямую, а использовать VSTO - это обертки для .Net для комовских объектов офиса. |
|||||||||||||||||||||||
|
|
|
|
|
#24
|
|
Неактивный пользователь
Регистрация: 01.10.2009
Сообщений: 10
Репутация: 1
|
нафига отчищать форму если это делает сборщик мусора?
|
|
|
|
|
|
#25
|
|
Пользователь
Пол:
Регистрация: 02.03.2007
Сообщений: 54
Репутация: 23
|
есть 2 класса:Клиент и Контактное Лицо, причем контактных лиц у одного клиента может быть много
public abstract class ClientN { public string name; public string fullName; public string numDog; public List<KontLica> kontlico; public string DopInfo; } public abstract class KontLica { public string firstName; public string lastName; public string middleName; public string ocupation; public string tel; } Я пытаюсь создать список экземпляров класса ClientN: List<ClientN> listClients1=new List<ClientN>(); //создали место под список в памяти ClientN NewClient=new ____________________ ; //создали _______________________________ listClients1.Add(NewClient); //занесли _______________________________ NewClient.name = "ООО Рога и копыта"; // занесли некоторое значение имени Так вот: где я оставил подчеркивание, я не знаю что написать. Если кто сталкивался с такой проблемой, пожалуйста ответьте |
|
|
|
|
|
#26
|
|
Новичок
![]() ![]() Пол:
Регистрация: 02.11.2007
Сообщений: 26
Репутация: 14
|
Тебе нужно создать дочерний класс от абстрактного, например SomeClient.
И соответственно использовать: ClientN NewClient=new SomeClient(); |
|
|
|
| Сказали спасибо: |
|
|
#27
|
|
Пользователь
Пол:
Регистрация: 02.03.2007
Сообщений: 54
Репутация: 23
|
А как обращаться к public List<KontLica> kontlico; в классе ClientN?
|
|
|
|
|
|
#28
|
|
Новичок
![]() ![]() Пол:
Регистрация: 02.11.2007
Сообщений: 26
Репутация: 14
|
Тебе необходимо реализовать дочерние классы примерно так:
public class SomeKontLica:KontLica { // тут написать конструктор, необходимые методы } public class SomeClient: ClientN { public SomeClient() { kontlico=new List<KontLica>();//создаешь коллекцию name=.... и т.д. } //метод добавления контактного лица public void AddKontlico(SomeKontLica a) { kontlico.Add(a);//добавляем в колекцию переданное контактное лицо } } |
|
|
|
| Сказали спасибо: |
|
|
#29
|
|
Неактивный пользователь
Пол:
Регистрация: 06.08.2009
Сообщений: 12
Репутация: 2
|
Последний раз редактировалось dubina2; 22.05.2010 в 09:28.. |
|
|
|
|
|
#30
|
|
Неактивный пользователь
Пол:
Регистрация: 05.04.2008
Сообщений: 33
Репутация: 15
|
А можно как-то создать екселевский документ, если на компе нету офиса. Базу данных Acces знаю можно, а вот с exel как быть?
|
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| практическая задача для профи | W.D.kulibin | PHP | 2 | 16.09.2009 13:40 |
| Профи DVD-Video | Frayar | Архив | 2 | 21.07.2008 19:25 |
| Профи / Vault, The /2005 | Meverik | Зарубежные фильмы | 0 | 08.06.2005 21:35 |
|
|