C#(WPF)在不新建实例的情况下怎么调用另一个类的方法

作者&投稿:林亚 (若有异议请与网页底部的电邮联系)
初学C# 怎么在一个类中调用另一个类的函数?~

我虽然看的有点迷糊,但看完你和他们的问答以后,总结了一下,你是不是想这样:比如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难道不是你要的东西?何来重新创建一说。

如果方法是静态的话 就不需要创建实例了。


隆回县18034877611: wpf在编译时出现无法创建实例 -
泊盲甘露: ……您不把代码贴出来,谁知道怎么回事啊 现在这能说,你的一个叫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的窗口吗 -
泊盲甘露: 创建用户控件库,而不是类库.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网