C#-从另一个窗体调用函数
我需要另一张表格的通知单。 ControlPanel.cs(默认格式,此处为notifyicon): 表格1.cs(另一份表格): 联机C#-从另一个窗体调用函数,c#,oop,tray,C#,Oop,Tray,我需要另一张表格的通知单。 ControlPanel.cs(默认格式,此处为notifyicon): 表格1.cs(另一份表格): 联机cp.TrayP=“托盘弹出此”我得到一个空异常。 如果我将其更改为cp.TrayPopup(“托盘弹出此”,“测试”)异常抛出任何异常 如果我这样做: private void mouse_Up(object sender, MouseEventArgs e) { var CP = new ControlPanel(); CP.TrayPopu
cp.TrayP=“托盘弹出此”代码>我得到一个空异常。
如果我将其更改为cp.TrayPopup(“托盘弹出此”,“测试”)代码>异常抛出任何异常
如果我这样做:
private void mouse_Up(object sender, MouseEventArgs e) {
var CP = new ControlPanel();
CP.TrayPopup("TRAY POPUP THIS", "test");
}
,托盘弹出窗口显示,但它会创建第二个托盘图标,然后显示来自新图标的气球提示。我能做什么?
注意:很抱歉英语不好。不需要每次都分配内存,试试这个
public partial class Form1 : Form
{
public ControlPanel cp = new ControlPanel();
....
private void mouse_Up(object sender, MouseEventArgs e) {
CP.TrayPopup("TRAY POPUP THIS", "test");
}
}
您的公共控制面板cp代码>变量具有空引用,因为其从未初始化。为了访问控制面板,您需要设置对它的有效引用。如果您的ControlPanel.cs位于另一个窗体上,则需要从那里获取该引用。通过公共属性或接口 如果要从ControlPanel打开第二个表单“Form1”,则应将CP实例传递给Form1,如
public partial class ControlPanel : Form
{
public void ShowForm1(){
FOrm1 f1 = new Form1();
f1.SetCp(this);
f1.show();
}
public void TrayPopup(string message, string title)
{
TrayIcon.BalloonTipText = message;
TrayIcon.BalloonTipTitle = title;
TrayIcon.ShowBalloonTip(1);
}
}
public partial class Form1 : Form
{
public ControlPanel _cp;
public void SetCP(controlPanel cp){
_cp = cp;
}
private void mouse_Up(object sender, MouseEventArgs e) {
if(_cp != null)
_cp.TrayPopup("TRAY POPUP THIS", "test");
}
}
谢谢,但另一个托盘图标是creates.you调用CP.TrayPopup(“托盘弹出此”、“测试”);还有其他地方吗?newcontrolpanel()上代码>创建新的托盘图标。公共字符串TrayP需要什么?没有什么,我只是复制了他的现有代码。可以删除,谢谢你指出它
public partial class Form1 : Form
{
public ControlPanel cp = new ControlPanel();
....
private void mouse_Up(object sender, MouseEventArgs e) {
CP.TrayPopup("TRAY POPUP THIS", "test");
}
}
public partial class ControlPanel : Form
{
public void ShowForm1(){
FOrm1 f1 = new Form1();
f1.SetCp(this);
f1.show();
}
public void TrayPopup(string message, string title)
{
TrayIcon.BalloonTipText = message;
TrayIcon.BalloonTipTitle = title;
TrayIcon.ShowBalloonTip(1);
}
}
public partial class Form1 : Form
{
public ControlPanel _cp;
public void SetCP(controlPanel cp){
_cp = cp;
}
private void mouse_Up(object sender, MouseEventArgs e) {
if(_cp != null)
_cp.TrayPopup("TRAY POPUP THIS", "test");
}
}