Infopath 2007 - 如何以编程方式在C#代码中设置ScreenTip?

时间:2013-02-13 15:26:15

标签: c# sharepoint infopath

我需要在infopath代码后面以编程方式设置infopath屏幕提示。我读了一些关于这个的事情,这是不可能的,但我做了这样的事情:

        XPathNavigator field1 = MainDataSource.CreateNavigator().SelectSingleNode(xpath1, NamespaceManager);

        XPathNavigator field2 = MainDataSource.CreateNavigator().SelectSingleNode(xpath2, NamespaceManager);

        if (field1.Value.ToString() == "none")
        {

            this.Errors.Add(field2, "XXX", "XXxxxXX", "xxXXxxXX");

        }

但是我仍然将字段更改为“不能为空”任何线索?

2 个答案:

答案 0 :(得分:1)

我遇到了和你一样的问题,并没有真正找到一个简单而干净的解决方案。我必须检查是否正确输入了IBAN。使用额外的字段和方法对我来说不够干净所以我去尝试通过Errors-property,你说它不起作用。这是我使用的代码:

XPathNavigator navigator = MainDataSource.CreateNavigator();
XPathNavigator ibanField = navigator.SelectSingleNode("/my:.../my:.../my:FldIban", NamespaceManager);
Errors.Add(ibanField , "Invalid IBAN", "The given IBAN is not formatted correctly");

希望无论如何这对我有帮助。 :)

答案 1 :(得分:0)

我在value = true时创建了带隐藏的按钮和特殊字段,并显示何时为真。

  

public void CTRL32_7_Clicked(object sender,ClickedEventArgs e)           {               // XPathNavigator test = MainDataSource.CreateNavigator()。SelectSingleNode(“/ my:myFields / my:field11”,NamespaceManager);

        XPathNavigator test2 = MainDataSource.CreateNavigator().SelectSingleNode("my:myFields/my:buttonSet", NamespaceManager);
        if (test2.Value == "FALSE")
        {
            test2.SetValue("TRUE");
        }
        else
        {
            test2.SetValue("FALSE");
        }
        XPathNavigator tooltip = MainDataSource.CreateNavigator().SelectSingleNode("my:myFields/my:tooltip", NamespaceManager);
        tooltip.SetValue("Custom Tooltip DEMO");
    }