C#(WPF)在不新建实例的情况下怎么调用另一个类的方法
作者&投稿:林亚 (若有异议请与网页底部的电邮联系)
我虽然看的有点迷糊,但看完你和他们的问答以后,总结了一下,你是不是想这样:比如A是一个窗体类,B是另一个窗体类,你想在A的某一个函数里new一个b的对象并且让b显示出来,然后在b里面调用A的方法?如果是这样的话,你可以在B的构造函数里这么写public B(A a)
{
m_A=a;
}
然后在B里面定义一个A类型的成员变量m_A,这样你就可以在B对象的生命周期里调用A对象的公有方法了,当然,你写b的new的时候要这么写B b= new (this);因为你是想将当前的A对象作为值传进去,不知道我说的能不能解决你的问题
MessageBox.Show("12345"); 这个是可以的 你看看是不是缺少引用
textbox是不能在类中找到的,这是属于窗体的对象,必须在窗体中才可调用
<Grid>
<Button Click="Button_Click"></Button>
</Grid>
//可以通过控件找到窗体实例,
//示例:我用button找到了MainWindow
private void Button_Click(object sender, RoutedEventArgs e)
{
Button b = sender as Button;//相当于BackStage
Window w = FindAnchestor<Window>(b);
MessageBox.Show(w.Title);
}
// 这段直接复制
private static T FindAnchestor<T>(DependencyObject current)
where T : DependencyObject
{
do
{
if (current is T)
return (T)current;
current = VisualTreeHelper.GetParent(current);
}
while (current != null);
return null;
}
两点建议:
1,楼主补习一下语文吧……
2,Context的本意是什么?上下文。
控件的Parent是什么,是存放它的容器。你现在把窗口作为容器,那么Parent难道不是你要的东西?何来重新创建一说。
如果方法是静态的话 就不需要创建实例了。
泊盲甘露: ……您不把代码贴出来,谁知道怎么回事啊 现在这能说,你的一个叫WpfApplication3的程序集中的Window1.xaml的第1行第九个字符处有语法错误.可能原因:在那个位置有XAML编译器无法识别的属性赋值
隆回县18034877611: c# winform怎么实现不实例化也能够使用Form对象 - ?
泊盲甘露: 不实例化当然是不行的,除非类Form1是静态的,而且控件的Modifiers必须是Public的,即便是这样也是系统自动帮你初始化的.
隆回县18034877611: WPF工程中新添加的窗体,没有实例化吗 - ?
泊盲甘露: 你要在app.xml文件里面设置启动窗体为window1,如果你不设置的话,它默认的启动项是你项目中新建的第一个窗体
隆回县18034877611: 如何在WPF中调用C#控件库 - ?
泊盲甘露: 一般C#winform有的控件WPF中会有,但如果要调用C#Winform中的COM 控件和ActiveX 控件WPF是不支持的,所以需要先建立一个Winform项目,新建一个用户控件,将你要调用的控件放在用户控件中,编译成dll然后让wpf来调用.
隆回县18034877611: C#为什么不能在WPF自己新建的类的方法里面使用控件和MessageBox.Show? - ?
泊盲甘露: WPF是用的blend?以前玩了一下,好像是要自己注意大小写的,没有提示,但是肯定可以MessageBox.Show("12345");以前就试过
隆回县18034877611: C# wpf combobox控件,提示未将对象引用设置到对象的实例. - ?
泊盲甘露: 因为程序在启动时需要解释xaml,按照xaml中的顺序生成控件,先布局的先生成,而当生成combobox并且设置isselected属性时也要调你的selectionchanged()处理函数,而此时textBox1还没生成. 你只要把textBox1放在combobox之前就行了.
隆回县18034877611: WPF 是什么意思?(C#) - ?
泊盲甘露: WPF(Windows Presentation Foundation)是微软推出e68a84e799bee5baa631333431366432的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分.它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发...
隆回县18034877611: C#中的exe能不能在不安装.net framework的环境里使用 - ?
泊盲甘露: 任何用高级语言编写的程序的运行都是需要环境的,Java需要JAVA的环境PHP需要PHP的环境 如果没有这些环境,那这门语言就太烂了,这些环境就是语言的Running Time winform和wpf是要在.NET framework中运行的,因为它们调用的是.Net...
隆回县18034877611: wpf使用C#控件 - ?
泊盲甘露: 在项目引用中添加WindowsFormsIntegration.dll 然后在xaml用 xmlns:int="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration" 放你的Winform控件
隆回县18034877611: 在C#的类库中可以创建WPF的窗口吗 - ?
泊盲甘露: 创建用户控件库,而不是类库.