wpf中调用winform用户控件的方法
wpf做一个程序,里边添加一个winform用户控件,有个方法叫比如说aaa,怎么在wpf的C#代码里调用这个aaa,声明一个这个控件再调用出错。。...
wpf做一个程序,里边添加一个winform用户控件,有个方法叫比如说aaa,怎么在wpf的C#代码里调用这个aaa,声明一个这个控件再调用出错。。
展开
1个回答
展开全部
WPF的MainWindow的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication2
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
UserControl1 us = new UserControl1();
this.grid.Children.Add(us.addTextBox()); // 在前台的Grid里 添加Name属性,才可以使用 this.grid.........例如<Grid Name="grid">
}
}
}
winform的userControl的代码
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Controls;
namespace WpfApplication2
{
public partial class UserControl1 : System.Windows.Controls.Control
{
public UserControl1()
{
InitializeComponent();
}
private void UserControl1_Load(object sender, EventArgs e)
{
addTextBox();
}
public System.Windows.Controls.TextBox addTextBox()
{
System.Windows.Controls.TextBox tx = new System.Windows.Controls.TextBox();
tx.Text = "111";
return tx;
}
}
}
UserControl1.Designer.cs 这个不改的话,你执行下,报错的地方删掉.
namespace WpfApplication2
{
partial class UserControl1
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
}
#endregion
}
}
因为WPF和WINFORM的控件类型是不一样的,一个是controls里的,一个是forms里的,你在WPF里添加 的话,类型不同,参数不能转换
其实我这样用,已经用的不是WINFORM的控件了,相当于自己建个类,写个创建控件的方法而已
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication2
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
UserControl1 us = new UserControl1();
this.grid.Children.Add(us.addTextBox()); // 在前台的Grid里 添加Name属性,才可以使用 this.grid.........例如<Grid Name="grid">
}
}
}
winform的userControl的代码
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Controls;
namespace WpfApplication2
{
public partial class UserControl1 : System.Windows.Controls.Control
{
public UserControl1()
{
InitializeComponent();
}
private void UserControl1_Load(object sender, EventArgs e)
{
addTextBox();
}
public System.Windows.Controls.TextBox addTextBox()
{
System.Windows.Controls.TextBox tx = new System.Windows.Controls.TextBox();
tx.Text = "111";
return tx;
}
}
}
UserControl1.Designer.cs 这个不改的话,你执行下,报错的地方删掉.
namespace WpfApplication2
{
partial class UserControl1
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
}
#endregion
}
}
因为WPF和WINFORM的控件类型是不一样的,一个是controls里的,一个是forms里的,你在WPF里添加 的话,类型不同,参数不能转换
其实我这样用,已经用的不是WINFORM的控件了,相当于自己建个类,写个创建控件的方法而已
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询