locked
открытие word и других офисных приложении внутри формы RRS feed

  • Вопрос

  • нужно по нажатию на кнопку выбрать нужный файл, а затем открыть его так, что бы приложение открылось внутри окна. в данный момент открывается, но вне окна. 
    28 февраля 2013 г. 18:30

Ответы

  • Из вашего кода не ясно что вы хотите открыть? Если вы хотите открыть Word в своем приложении - то это у вас не получится. Если вы хотите открыть документ Word в своем приложении, то вам надо использовать различные ActiveX.
    • Помечено в качестве ответа сережа1205 1 марта 2013 г. 10:20
    • Снята пометка об ответе сережа1205 1 марта 2013 г. 10:20
    • Помечено в качестве ответа сережа1205 1 марта 2013 г. 10:24
    1 марта 2013 г. 8:51

Все ответы

  • У вас вопрос про Windows 8 приложения? Не ясно какая технология вас интересует...

    28 февраля 2013 г. 19:33
  • десктопное приложение для win8. пробовал по разному через web browser, пробовал в picture box запихнуть.. 
    1 марта 2013 г. 5:50
  • В чем вы открываете выбранный файл и внутри какого окна вы его хотите открыть? Лучше пример кода приведите или же скриншот.
    1 марта 2013 г. 7:48
  • using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    using Word = Microsoft.Office.Interop.Word;


    namespace picBoxApp
    {

    public partial class MainForm : Form
    {
    public MainForm()
    {

    InitializeComponent();


    }
            Word.Application objectWord = new Word.ApplicationClass();

    void PictureBox1Click(object sender, EventArgs e)
    {
                objectWord.Visible = true;

              //Word.Start();
    this.timer1.Enabled = true;


    }

    void Timer1Tick(object sender, EventArgs e)
    {
    System.IntPtr winParent;
    System.IntPtr x;
    System.IntPtr winHandle = Usr32.FindWin("ConsoleWindowClass", "Command Prompt");
    if(winHandle != System.IntPtr.Zero)
    {
    winParent = Usr32.GetParent(winHandle);
    x = Usr32.SetParent(winHandle, this.pictureBox1.Handle);
    x = Usr32.SetWindowPos(winHandle, 1, 10, 10, 500, 300, 0);
    this.timer1.Enabled = false;
    }
    }
        
        
        }
    public class Usr32
      {
        #region Class Variables
        public  const int SM_CXSCREEN=0;
        public  const int SM_CYSCREEN=1;
        #endregion    
        
        #region Class Functions
        [DllImport("user32.dll", EntryPoint="FindWindow")]
        public static extern IntPtr FindWin(string lpClassName, string lpWindowName);
        
        [DllImport("user32.dll", EntryPoint="SetParent")]
        public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
        
        [DllImport("user32.dll", EntryPoint="GetParent")]
        public static extern IntPtr GetParent(IntPtr hWnd);
        
        [DllImport("user32.dll", EntryPoint="SetWindowPos")]
        public static extern IntPtr SetWindowPos(IntPtr hWnd, int hWndInsertAfter , int x , int Y , int cx , int cy , int wFlags);
        
        [DllImport("user32.dll", EntryPoint="ShowWindow")]
        public static extern IntPtr ShowWindow(IntPtr hWnd, long nCmdShow);
        
        [DllImport("user32.dll", EntryPoint="CloseWindow")]
        public static extern IntPtr CloseWindow(IntPtr hWnd);
        
        [DllImport("user32.dll", EntryPoint="DestroyWindow")]
        public static extern IntPtr DestroyWindow(IntPtr hWnd);
        
        #endregion
      }
    }

    в данном случае ворд запускается как класс можно ли его засунуть в picture box?
    1 марта 2013 г. 8:35
  • Из вашего кода не ясно что вы хотите открыть? Если вы хотите открыть Word в своем приложении - то это у вас не получится. Если вы хотите открыть документ Word в своем приложении, то вам надо использовать различные ActiveX.
    • Помечено в качестве ответа сережа1205 1 марта 2013 г. 10:20
    • Снята пометка об ответе сережа1205 1 марта 2013 г. 10:20
    • Помечено в качестве ответа сережа1205 1 марта 2013 г. 10:24
    1 марта 2013 г. 8:51
  • более менее ясно.. спасибо большое.

    1 марта 2013 г. 10:21