C#怎样使用API 设置按钮的visible和Enable属性?

我有个窗体,其中有一个按钮btnSave,但是我把它的visible属性设为了false,并且Enable属性也设为了false(这是哪个程序的需要,必须这样设置)。现在我要在另外的一个程序中点击这个按钮。

我应该怎样才能用API设置它的visible为true,并且Enable也为true呢?

应该使用哪几个API函数?

望达人指点...
补充:
我现在有俩个程序,一个是客户端程序,就是用户使用的,还有一个是客户端的自动升级程序。在客户端启动的同时,自动升级程序会自动启动。自动启动程序中有一个按钮btnChange,但是它的visible属性设为了false,并且Enable属性也设为了false(这是那个程序的需要,必须这样设置),我需要在客户端通过API,控制自动升级程序的按钮,( 注意,这完全是俩个不同的进程,不是同一个项目。)

--liyongqing1978 简单点说,就是自动升级的那个程序有一个按钮,需要通过客户端的操作,来判断是否执行...如果执行了,就必须用进程的通信来解决问题,所以我认为要用到API...
用通信来实现是可以的,但是我不能改服务器的代码...

-- syokouken 服务器的代码和自动升级程序的代码都不是我能改的,我想我只有通过API才能找到那个按钮的handle,然后再触发它的事件.事实上,我已经通过API找到了那个按钮,但是它是visible=false,并且Enable=false的。这样子,我用API就不能直接点击了,必须先设置它的visible和enable属性。 或许是我没说清楚吧

有个地方不太明确,希望你补充一下。
1、包含非活性、不可见的按钮的窗体和你问题中说的“另外的一个程序”是一个项目中的两个窗体吗?还是两个独立的项目?

提案:
如果你的问题是在一个项目中的两个窗体之间的问题,可以用下面方法解决。
1、在你的包含按钮的窗体(form1)类中,公开两个属性,用于设定你的按钮的visible和enable。
2、将form1的引用保存到另一个窗体(form2)可以访问的地方。
3、在form2中,通过form1的引用调用在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;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

public bool BtnVisible
{
set
{
button1.Visible = value;
}
get
{
return button1.Visible;
}
}
public bool BtnEnable
{
set
{
button1.Enabled = value;
}
get
{
return button1.Enabled;
}
}

private void button2_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.Form1 = this;
frm.ShowDialog();
}
}
}
--------
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;

namespace WindowsFormsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}

Form1 form1;
public Form1 Form1
{
set
{
form1 = value;
}
get
{
return form1;
}
}

private void showButton_Click(object sender, EventArgs e)
{
form1.BtnVisible = true;
}

private void enableButton_Click(object sender, EventArgs e)
{
form1.BtnEnable = true;
}
}
}
--------
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-09
打开窗口的时候从旧窗口向新窗口传送给一个值就行~获取这个值以后设置属性~
第2个回答  2010-07-09
我猜测,你的那个包含隐藏按钮的窗体,是在另外一个程序里,而且这个程序不是你自己写的,你不能改动其源码对吧,因此你才要用特殊的方式,从外部将其button设置为可见?

研究研究先...本回答被提问者采纳
第3个回答  2010-07-09
不需要API,直接设置窗体-按钮属性值visibe就可以了。
你的问题是处理逻辑上有误造成的。
updatet程序应根据服务器端更新服务器的通讯来判定是否显示按钮,这段处理逻辑在本程序内完成,而不是由客户端通知update再次通知。
客户端在启动初始化时启动update就可以,不做升级判断。
第4个回答  2010-07-09
不明白为啥你要这么做 不过非要这么做的话最简单的方法 在按钮的同一位置 覆盖一个按钮或者随便一个东西就好了
相似回答