c#winform tracesource有啥用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#winform tracesource有啥用相关的知识,希望对你有一定的参考价值。

你好!winform每个窗体都可以自定义位置的,通过StartPosition的Manual属性,即通过location位移来确定窗体的起始位置。不可能直接一个属性就让你在右下角显示的,这个要自己去算。 参考技术A <source name="LogTrace" switchName="LogTraceSourceSwitch" switchType="System.Diagnostics.SourceSwitch" >
<listeners>
<add name="textListener" />
<remove name ="Default" />
</listeners>
</source>
</sources>
<!-- 控制跟踪输出 -->
<switches>
<!-- 侦听的全局级别, 对所有的侦听器有效 -->
<add name="LogTraceSourceSwitch" value="Information" />
<!-- 可以关闭全局侦听 -->
<!--add name="LogTraceSourceSwitch" value="Off" -->
</switches>
<!-- 侦听器 -->
<sharedListeners>
<add name="textListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="trace.log">
<!--设定特定侦听器的监听级别-->
<filter type="System.Diagnostics.EventTypeFilter" initializeData="Warning" />
</add>
</sharedListeners>
<!-- 侦听设置 -->
<trace autoflush="true" indentsize="4" />
</system.diagnostics>

window.external 有啥用?

【中文标题】window.external 有啥用?【英文标题】:What is the use of window.external?window.external 有什么用? 【发布时间】:2012-05-28 11:45:47 【问题描述】:

window.external 有什么用?这是否用于从 JavaScript 调用 C#/VB.NET (ASP.NET) 中的服务器端函数/方法?你能指出我正确的方向吗?

代码:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input type="button" name="button1" value="Click" 
               onclick="javascript:window.external.SayHello('Mike');" />
    </div>
    </form>
</body>
</html>
Public Class WebForm1
    Inherits System.Web.UI.Page

    Public Sub SayHello(ByVal name As String)
        Response.Write("Hello :- " & name)
    End Sub
End Class

【问题讨论】:

【参考方案1】:

这主要取自 MSDN article,但 window.external 可用于允许您的 WebBrowserControl 执行客户端 Windows 窗体应用程序的公共方法。

例如,在您的表单中,您可能具有如下功能:

public void HelloFromTheForm()

    MessageBox.Show("Hi client, thanks for calling me!");

在加载到WebBrowserControl 的 html 中,您可能有一个如下所示的按钮:

<button onclick="window.external.HelloFromTheForm()">
    Say hi to the form
</button>

所以关于“这是否用于调用服务器端函数?”的问题,您的表单不是“服务器端”,但它允许您调用表单的 C#/VB.NET 代码嵌入式网页。

【讨论】:

渡//EN" "w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> w3.org/1999/xhtml">
公共类 WebForm1 继承 System.Web.UI.Page Protected Sub SayHello(ByVal name As String) Response.Write("Hello :- " & name) End Sub End Class 还有两件事。一个是你可能最好修改你的原始帖子并添加代码而不是强制它进入 cmets,这使得它很难阅读:)。其次是您的SayHelloprotected。它必须是public。让我知道是否可以解决问题。 我已经编辑了这个问题。现在你有了我拥有的完整代码。 @Volatil3 托管浏览器组件的表单(或应用程序)必须将脚本对象设置为 com 可见 .net 类的实例。(请参阅WebBrowser.ObjectForScripting)。该类的公共方法可以使用window.external【参考方案2】:

这是一些浏览器/操作系统供应商使用的约定,用于促进在浏览器内运行的 javascript 与在用户设备或机器上在浏览器“外部”运行的代码之间的通信。

例如,如果您为 Android 或 Windows Phone 编写了托管 Web 浏览器控件的本机应用程序,则周围的本机移动框架可能会提供 window.external 作为 javascript 在 Web 控件内的网页上运行的一种方式调用您应用的本机代码功能。 (可以在此处找到如何为 Android 执行此类操作的示例:Listen to javascript function invocation from java - Android)

另一方面,如果您希望在用户 Web 浏览器上运行的 javascript 和服务器上运行的 C# 代码之间进行通信,那么您将希望研究 AJAX 样式调用(通常很少与window.external有关)。 可以在 ASP.Net 站点上找到设置此类内容的示例。 例如http://www.asp.net/web-forms/tutorials/aspnet-ajax/understanding-asp-net-ajax-web-services

【讨论】:

以上是关于c#winform tracesource有啥用的主要内容,如果未能解决你的问题,请参考以下文章

C 函数中的静态变量有啥用? [复制]

web service做啥用的,我知道winform是做c/S的软件,webform 是做网站

C中__IO和静态关键字有啥用?

c语言,union有啥用?

IPC_CREAT 有啥用| 0666 C 中 shmget() 函数中的标志

C语言的enum中的枚举名有啥用?