小编Lee*_*son的帖子

Excel中的CustomTaskPane不会出现在新工作簿中

我在Excel 2013中添加了一个CustomTaskPane,可以让用户快速搜索照片.如果用户只打开/创建一个工作簿,它运行良好.问题是,如果他们打开另一个工作簿或创建一个新工作簿,任务窗格不会出现在出现的新窗口中.它只是放在原来的窗口.我知道这种行为是由于我只是在打开Excel时初始化面板而引起的.我向ActiveWindow事件添加了一个事件处理程序,以便在打开另一个工作簿时初始化一个新面板.

问题是我无法弄清楚如何判断CustomTaskPane是否已经存在于窗口中.如果是,则简单地创建另一个CustomTaskPane,因此在该窗口中现在有两个.我编写了以下代码来处理原始代码并创建一个新代码,但它引入了一些滞后(1-5秒),每次更改工作簿窗口时都会引起用户疯狂.有没有办法查看窗口中是否已存在CustomTaskPane以避免处理和重新创建新窗口以避免堆叠重复的任务窗格?

Microsoft.Office.Tools.CustomTaskPane PartPhotoTaskPane;
Globals.ThisAddIn.Application.WindowActivate += Application_WindowActivate;

        void Application_WindowActivate(Excel.Workbook Wb, Excel.Window Wn)
    {
        if (PartPhotoTaskPane != null)
        {
            PartPhotoTaskPane.Dispose();
            InitalizePartPhotoViewerTaskPane(EPPF);
        }
        else
        {
            InitalizePartPhotoViewerTaskPane(EPPF);
        }
    }

    /// <summary>
    /// Start up the part photo viewer task pane
    /// </summary>
    private void InitalizePartPhotoViewerTaskPane(ExcelPartPhotoFunctions _EPPF)
    {
        //intialize the part search
        try
        {
            PartPhotoTaskPane = Globals.ThisAddIn.CustomTaskPanes.Add(new PartPhotoSearchPane(_EPPF), "Part Information", Globals.ThisAddIn.Application.ActiveWindow);
            PartPhotoTaskPane.Visible = Properties.Settings.Default.InfoPaneOpenStatus;
            PartPhotoTaskPane.Width = 260;
        }
        catch (Exception e)
        {
            MessageBox.Show("Error starting Part Info Toolbar:" + Environment.NewLine +
            e.Message + Environment.NewLine …
Run Code Online (Sandbox Code Playgroud)

c# vsto excel-2013

10
推荐指数
1
解决办法
4571
查看次数

没有ShowDialog的打印会显示空白页面

我遇到了一个从WPF项目打印的奇怪问题.我正在打印应用程序的屏幕截图以进行报告,所有这些都可以正常工作.当前用户按下打印,出现打印对话框,并打印出捕获图像.

但是,我希望能够直接打印到默认打印机而不显示对话框.这应该通过评论ShowDialog()声明并允许其余部分恰好发生来轻松完成.打印机仍然打印,但页面始终为空白.谁能解释这种行为?

private void PrintCurrentScreen()
{
    PrintDialog PD = new PrintDialog();
    PD.PrintTicket.OutputColor = OutputColor.Grayscale;
    PD.PrintTicket.OutputQuality = OutputQuality.Draft;

    PrintTicket PT = new PrintTicket();
    PT.PageOrientation = PageOrientation.Landscape;
    PT.CopyCount = 1;
    PT.PageBorderless = System.Printing.PageBorderless.Borderless;

    //---Blank pages print when commented out---//
    //if (PD.ShowDialog() == true)
    //{
    PD.PrintTicket = PT;

    DrawingVisual DV = new DrawingVisual();
    DV.Offset = new Vector(20, 20);
    DrawingContext DC = DV.RenderOpen();
    DC.DrawImage(previewimage.Source, new Rect(new Size(PD.PrintableAreaWidth - 40, PD.PrintableAreaHeight - 40)));
    DC.Close();

    PD.PrintVisual(DV, "TEST");
    //}
}
Run Code Online (Sandbox Code Playgroud)

c# printing wpf

8
推荐指数
1
解决办法
1888
查看次数

CLR正在优化我的forloop变量

我正在尝试运行一个基本循环,它将在数据视图网格中找到特定值.我无法弄清楚代码是什么,因为for循环在评估其基本条件之前退出.

private void SearchDataViewGrid(string FileName)
    {
        //finds the selected entry in the DVG based on the image
            for (int i = 0; i == dataPartsList.Rows.Count ; i++)
            {
                if(FileName == dataPartsList.Rows[i].Cells[3].Value.ToString())
                {
                dataPartsList.Rows[i].Selected = true;
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

该程序没有崩溃,但我的'i'变量声明它已经被优化掉了.尝试了一些我在网上找到的简单修复,但似乎没有任何保留.

我已经验证我传递的字符串是正确的,我的'虚拟'DVG返回包含的行数值14.即使我删除for循环中的'if'语句,我仍然会得到相同的错误.

c# variables clr loops for-loop

3
推荐指数
1
解决办法
103
查看次数

SQL Query按时间对项目进行分组,但仅限于彼此靠近?

我正在尝试制作一个SQL语句来从数据库中提取样本值.该表包含与CNC机床中的刀具更改有关的值.我当前的语句正确地提取了值,但只有在给定程序中出现一个工具时才会这样.如果工具多次出现,则时间值对应于从第一次加载到最后一次加载.只有一个TIME列,通过查找它的第一个和最后一个,我可以确定工具进/出时间.

基本示例:

Raw Data:
Tool_Number    TIME    
100            12:00
100            12:01
100            12:02
100            12:03

Current Query Returns: 
Tool_Number    TIME_IN     TIME_OUT    
100            12:00       12:03
Run Code Online (Sandbox Code Playgroud)

但是,当工具多次出现时,事情会变得多毛,因为我不能再使用TOP和DISTINCT规则了.

Raw Data:
Tool_Number    TIME    
100            12:00
100            12:01
100            12:02
100            12:03
200            12:04
200            12:05
100            12:06
100            12:07

Current Query Returns: 
Tool_Number    TIME_IN     TIME_OUT    
100            12:00       12:07
200            12:04       12:05

Ideal Query Returns:
Tool_Number    TIME_IN     TIME_OUT    
100            12:00       12:03
200            12:04       12:05
100            12:06       12:07
Run Code Online (Sandbox Code Playgroud)

我们正在进行时间分析,当然这严重影响了总时间值.目前的查询是:

SELECT * FROM (SELECT DISTINCT SPINDLE_POT FROM TBL_SPINDLE_DATA_M1 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server gaps-and-islands sql-server-2012

3
推荐指数
2
解决办法
2111
查看次数

SqlDependency仅在订阅时触发

我正在尝试SqlDependancy在SignalR项目中使用,但我似乎无法让OnChanged事件多次触发.它最初在订阅事件上触发,但在更改底层数据库后它永远不会再触发.我省略了SignalR和控制器代码,因为问题似乎在于存储库类.SqlDependancy.Start()在我Global.asax班上宣布.

从SQL服务器观察,我可以看到在我的应用程序启动时创建通知队列,并在关闭时终止.

    public IEnumerable<Visitor> NotifyAllClients()
    {
        List<Visitor> visitors = new List<Visitor>();
        using (var connection = new SqlConnection(new VisitorLogEntities().Database.Connection.ConnectionString))
        {
            using (var command = new SqlCommand(@"SELECT * FROM dbo.Visitors", connection))
          //using (var command = new SqlCommand(@"SELECT [Id],[AgreeToTerms],[Base64Image],[CheckInDate],[CheckOutTime],[Company],[CountryOfOrigin],[email],[FirstName],[LastName],[IsInBuilding],[MeetingSubject],[MeetingTime],[PatriotHost],[phone],[title] FROM dbo.Visitors", connection))
            {

                var dependency = new SqlDependency(command);
                dependency.OnChange += Database_OnChange;

                if (connection.State == System.Data.ConnectionState.Closed)
                    connection.Open();

                var reader = command.ExecuteReader();

                while (reader.Read())
                {
                 ////compile visitor objects
                 ////visitors.add(new Visitor());
                }
            }
            return visitors.OrderByDescending(x => x.CheckInDate);
        } …
Run Code Online (Sandbox Code Playgroud)

c# sql-server sqldependency signalr

2
推荐指数
1
解决办法
1464
查看次数