Tag: 调用

如何在asp.net web应用程序中调用javascript方法

我想在ac#函数中使用javascript函数 protected void button1_Click(object sender,EventArgs e){ //javascript function call ex. /* boolean b=the return of: function update() { var result = confirm(“Do you want to delimit the record?”) if (result) {return true;} else { return false; } } */ } 我怎么能做这样的事情? 我想当用户按下是,返回true,我知道他按了是…我可以这样做吗?

在另一个线程内操作UI元素

我试图在WinForms C#应用程序中创建一个单独的线程,启动一个控制ProgressBar(marquee)的后台工作程序。 问题在于,当我尝试将条形图设置为可见时,它什么都不做,我尝试过多种forms的Invoke,但它们似乎没有帮助。 从单独的线程调用以下方法progressBarCycle 。 BackgroundWorker backgroundWorker = new BackgroundWorker(); public void progressBarCycle(int duration) { backgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker_DoWork); backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker_ProgressChanged); backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted); backgroundWorker.WorkerReportsProgress = true; backgroundWorker.WorkerSupportsCancellation = true; backgroundWorker.RunWorkerAsync(duration); } private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; worker.ReportProgress(0); DateTime end = DateTime.Now.AddMilliseconds((int)e.Argument); while (DateTime.Now […]

从不同的线程调用

我无法相信它,这在我的其他应用程序中有效,但在这个有类似结构的那个 – 它没有! public string ListAdd { set { if (listView1.InvokeRequired) { this.Invoke((MethodInvoker)delegate { listView1.Items.Add(value); }); } else { listView1.Items.Add(value); } } } 我称之为: var formz = Form.ActiveForm as Form1; if (formz != null) formz.ListAdd = “asdasdasdasd”; 如果我从我接收数据包的函数(我想把它放在listView上)通过TCP调用它 – 没有任何事情发生,但如果我在我初始化WinSock的同一个类中调用它 – 它的工作原理。 问题出在哪里? 编辑:我刚刚调试了应用程序,formz在我称之为的地方为null(接收函数)。 为什么它在那里是空的,但在其他任何地方都没有?

如何确定某个特定代表是否已分配给某个活动?

我在winform上有一个命令按钮。 所以,如果我有类似的东西: myButton.Click += MyHandler1; myButton.Click += MyHandler2; myButton.Click += MyHandler3; 如何判断是否已将任何特定的MyHandler添加到Click事件中,以便它不会再添加到我的代码中的其他位置? 我已经阅读了如何使用GetInvocationList()来获取自己的事件信息。 但是在尝试使用各种组合获取命令按钮的项目时出错。 它说, “事件’System.Windows.Forms.Control.Click’只能出现在+ =或 – =的左侧。” 我错过了什么? [编辑] – 我想强调艾哈迈德指出的这个问题 。 这是一个kludge,应该更容易恕我直言,但看起来它可能只是工作。

BackgroundWorker还需要调用Invoke吗?

在C#中做一些工作的最后一个问题显示进度条? ,人们建议使用BackgroundWorker 。 我认为在BackgroundWorker DoWork方法中你可以直接更新GUI,但是为什么需要使用Invoke来Invoke这个函数Invoke 。 toolTip.SetToolTip(button, toolTipText);

C#使用调用线程,冻结表单

我正在尝试使用线程并防止程序在线程繁忙时冻结。 它应该显示进度(写入0/1)并且不仅仅是在完成后显示结果,同时冻结表格。 在当前程序中,我正在尝试写入文本框,实际上看到不断进展,并且表单不会受到其他线程任务的影响。 我现在拥有的是我可以使用调用写入带有线程的文本框,但它只显示结果(表单在线程繁忙时冻结),并且表单冻结。 表格图片: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; namespace MultiThreading { public partial class MultiThreading : Form { public MultiThreading() { InitializeComponent(); } Thread writeOne, writeTwo; private void writeText(TextBox textBox, string text) { if (textBox.InvokeRequired) { textBox.BeginInvoke((MethodInvoker)delegate() { for (int […]

如何在.NET 3.5中进行动态对象创建和方法调用

代码看起来如何创建类的对象: string myClass = “MyClass”; 以上类型,然后调用 string myMethod = “MyMethod”; 那个对象?

在调用新Action时帮助理解C#语法

我是c#的新手,并不了解调用新操作的语法,甚至不了解操作是什么。 根据我对Port1_DataReceived的理解,我必须创建一个动作,因为我正处于新的阶段……任何人都可以详细说明为什么我需要这样做? public Form1() { InitializeComponent(); SerialPort Port1 = new SerialPort(“COM11”, 57600, Parity.None, 8, StopBits.One); Port1.DataReceived += new SerialDataReceivedEventHandler(Port1_DataReceived); Port1.Open(); } private void Port1_DataReceived(object sender, SerialDataReceivedEventArgs e) { SerialPort Port = (SerialPort)sender; string Line = “”; int BytestoRead = Port.BytesToRead; Line = Port.ReadLine(); label1.Invoke(new Action(() => { label1.Text = Line; })); } 我真正理解的代码片段是: label1.Invoke(new Action(() […]

从C#应用程序调用ASP.net Web服务

我有个问题。 如何调用Web服务并从C#桌面应用程序获取结果。 我正在制作一个桌面应用程序,我希望它能够连接到我的在线ASP.net Web服务。 这怎么可能?

Invoke和BeginInvoke

问候,我正在用C#开发一些应用程序。 目前我正在处理线程,我有一个问题,我在脑海中。 Invoke和BeginInvoke有什么区别? 我读了一些post,我在这里找到了一些有用的信息: 这里 但是,以下代码中的Invoke和BeginInvoke之间有什么区别: private void ProcessRoutine() { for (int nValue = StartFrom; nValue <= EndTo; nValue++) { this.Invoke(this.MyDelegate, nValue); //this.BeginInvoke(this.MyDelegate, nValue); } MessageBox.Show("Counting complete!"); } private void MessageHandler(int progress) { lblStatus.Text = lblStatus.Text = "Processing item: " + progress.ToString(); progressBar1.Value = progress; } 其中MyDelegate是对MessageHandler函数的引用。 我注意到使用BeginInvoke lblStatus.Text没有刷新,使用Invoke刷新标签。 另外我知道Invoke等待它的执行完成。 我感兴趣的最重要的案例是为什么在这种情况下刷新标签文本有所不同。