componentmodel

知识
赵荷老师 2019-07-17 16:56:32

解释下就OK了。3Q了...

这句的意思是:为窗体或者自定义控件,创建一个可以“存放”其他控件(如按钮、文本框等等)的容器。

#componentmodel#

返回顶部

影响力:2295

System.ComponentModel.Win32Exception:操作成功完成。这个怎么解决?

描述: 在MS.Win32.UnsafeNativeMethods.CreateWindowEx(Int32dwExStyle,StringlpszClassName,StringlpszWindowName,Int32style,Int32x,Int32y,Int32width,Int32height,HandleRefhWndParent,... 在 MS.Win32.UnsafeNativeMethods.CreateWindowEx(Int32 dwExStyle, String lpszClassName, String lpszWindowName, Int32 style, Int32 x, Int32 y, Int32 width, Int32 height, HandleRef hWndParent, HandleRef hMenu, HandleRef hInst, Object pvParam)
在 MS.Win32.HwndWrapper..ctor(Int32 classStyle, Int32 style, Int32 exStyle, Int32 x, Int32 y, Int32 width, Int32 height, String name, IntPtr parent, HwndWrapperHook[] hooks)
在 System.Windows.Interop.HwndSource.Initialize(HwndSourceParameters parameters)
在 System.Windows.Window.CreateSourceWindow(Boolean duringShow)
在 System.Windows.Window.CreateSourceWindowDuringShow()
在 System.Windows.Window.SafeCreateWindowDuringShow()
在 System.Windows.Window.ShowHelper(Object booleanBox)
在 System.Windows.Window.Show()
在 System.Windows.Window.ShowDialog()
在 CustomControl.MsgBox.ShowDialog(Window owner, String messageBoxText, String caption, MessageBoxButton button, MessageBoxImage icon, MessageBoxResult defaultResult) 位置 D:\AOT\src\AOT\CustomControl\MsgBox.xaml.cs:行号 89
在 CustomControl.MsgBox.Show(String messageBoxText, String caption, MessageBoxButton button, MessageBoxImage icon, MessageBoxResult defaultResult) 位置 D:\AOT\src\AOT\CustomControl\MsgBox.xaml.cs:行号 40
在 MainApp.App.App_DispatcherUnhandledException(Object sender, DispatcherUnhandledExceptionEventArgs e) 位置 D:\AOT\src\AOT\MainApp\App.xaml.cs:行号 29
在 System.Windows.Threading.Dispatcher.CatchException(Exception e)
在 System.Windows.Threading.Dispatcher.CatchExceptionStatic(Object source, Exception e)
在 System.Windows.Threading.ExceptionWrapper.CatchException(Object source, Exception e, Delegate catchHandler)
在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
在 System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
在 MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
在 MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
在 MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
在 MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
在 MS.Win32.HwndSubclass.DefWndProcWrapper(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
在 MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
在 MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
在 MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
在 MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
展开
这个解答帮助过1145人

在安装NET框架的时候,因为你的部分组件没有安装。 重新安装组件或者重装VS

追问

请问具体是什么组件呢?

编辑时间 2019-01-13 12:17:57
影响力:8799

C#问题,我想用System.Workflow.ComponentModel中的Pan类,求助!!!

描述: 我看到说是.netframework4.7.2才有,就去VS下了这个,还是不行啊,还是报找不到这个命名空间。... 我看到说是.net framework 4.7.2才有,就去VS下了这个,还是不行啊,还是报找不到这个命名空间。
这个解答帮助过443人

你添加引用没?不能直接使用using导入命名空间,必须先引用

追问

不懂,可以贴下代码吗?谢谢

追答

这个不是写代码,你右击项目,选择添加引用,选择COM组件,引用以后才能使用using导入命名空间

编辑时间 2019-10-23
影响力:7791

C# 实例化 错误 1 “画圆.getRandomColor”是“类型”,但此处被当做“变量”来使用

描述: usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;na... 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 画圆
{
class getRandomColor
{

Random random = new Random();

Color getRandomColor()
{

return Color.FromArgb(

random.Next(256),

random.Next(256),

random.Next(256));

}
}

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

private void button1_Click(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();

int x0 = this.Width / 2;

int y0 = this.Height / 2;

for (int r = 0; r < this.Height / 2; r++)
{

g.DrawEllipse(

new Pen(getRandomColor(), 1),

x0 - r, y0 - r, r * 2, r * 2

);

}

g.Dispose();
}
}
}
展开
这个解答帮助过7295人

Console.WriteLine(A, i);
这句不对
改成

Console.WriteLine(A.i);

编辑时间 2019-11-04
影响力:8270

C#在编写winform的时候将数据插入sql数据库的时候的问题

描述: 插入的时候直接是insert后面的值,就是直接是valuse里面的值,而不是textbox里面的值源代码如下usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSyste... 插入的时候直接是insert 后面的值,就是直接是valuse里面的值,而不是textbox里面的值源代码如下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;using System.Data.SqlClient;namespace WindowsFormsApplication1{ public partial class Form3 : Form { public Form3() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string leixing = txtleixing.Text; string usename = txtusename.Text; string passwowrd = txtpassword.Text; string shuoming = txtshuoming.Text; string str3 = "server=xiaobai;database=EnHeng;Integrated Security=SSPI;"; SqlConnection conn3 = new SqlConnection(str3); conn3.Open(); string strsql = "insert into lalala (账号类型,用户名,密码,说明) values ('@txtleixing.Text','@txtusename.Text','@txtpassword.Text','@txtshuoming.Text')"; SqlCommand cmd = new SqlCommand(strsql, conn3); cmd.ExecuteNonQuery(); conn3.Close(); } }}

展开

这个解答帮助过6413人

string strsql = "insert into lalala (账号类型,用户名,密码,说明) values ('@txtleixing.Text','@txtusename.Text','@txtpassword.Text','@txtshuoming.Text')";

这一句改成

string strsql = string.Formate("insert into lalala (账号类型,用户名,密码,说明) values ('@{0}','@{1}','@{2}','@{3}')",txtleixing.Text,txtusename.Text,txtpassword.Text,txtshuoming.Text);

变量要用特殊符号转化才能拼到字符串中

编辑时间 2019-01-20
影响力:4494

c#报错当前上下文不存在名称InitializeComponent

描述: 代码usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Form... 代码
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;
using System.IO;

namespace practice
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
展开
这个解答帮助过7115人

在解决方案下面找对应的Form1.designer.cs
看看这个类是否有错误。(这个错误一般是这个类的类名与你上述类的名称不一致)

追问

一致的

编辑时间 2019-04-10
影响力:3786

c#如何重写类?

这个解答帮助过133人

我们首先要写一个自定义的事件参数,为了简单起见,我们的自定义按钮控件,增加一个TagNumber属性,它传递一个整型数据,当我们处理控件的Click事件,能够从事件参数类实例中取得我们在这个属性中设置的值,因此,我们需要一个MyButtonClickAgre,它从EventArgs类派生。

[csharp] view plaincopyprint?

  • /// <summary>  

  • /// 自定义事件参数类。  

  • /// </summary>  

  • internal class MyButtonClickAgre : EventArgs  

  • {  

  • int _value;  

  • public MyButtonClickAgre(int n)  

  • {  

  • this._value = n;  

  • }  

  • public int TheNumber  

  • {  

  • get { return this._value; }  

  • }  

  • }  


  • 现在,从Button类派生一个新类。

    [csharp] view plaincopyprint?

  • public class MyButton:Button  

  • {  

  • int _num;  

  • // 构造函数  

  • public MyButton()  

  • : base()  

  • {  

  • this._num = 0;  

  • }  

  • /// <summary>  

  • /// 用作参数传递的整型数据。  

  • /// </summary>  

  • [System.ComponentModel.Browsable(true)]  

  • [System.ComponentModel.Description("获取或设置一个整数。")]  

  • [System.ComponentModel.Category("数据")]  

  • public int TagNumber  

  • {  

  • get { return this._num; }  

  • set { this._num = value; }  

  • }  

  • }  

  • 好,TagNumber属性定义好了,Browsable特性表示控件中设计时是否显示在“属性”窗口中,Description用一些文本描述属性有什么用途这类的信息,Category表示该属性在“属性”窗口属于哪个类别,可能很多人觉得要传递一个英文的字符串作为分类名,其实不一定,如果你的VS是中文版的,你完全可以使用中文名字,如上面的“数据”。

    在“属性”窗口中浏览该控件的属性如下图所示。

    下面,我们还有一件重要的事情要做,那就是重写基类的Click事件。这里有两种方法:

    1、第一种方法不算得上是重写事件,应该说是我们经常做的重写On????方法,如我们下面要通过重写OnClick方法来达到我们要的效果。

    [csharp] view plaincopyprint?

  • /// <summary>  

  • /// 重写OnClick方法。  

  • /// </summary>  

  • protected override void OnClick(EventArgs e)  

  • {  

  • base.OnClick(new MyButtonClickAgre(this._num));  

  • }  


  • 这样,我们自定义的事件参数就传到事件处理程序了。

    2、第二种方法才算是重写事件,通过new关键字重新定义一个Click事件。

    [csharp] view plaincopyprint?

  • // 新的Click事件。  

  • public new EventHandler Click;  

  • /// <summary>  

  • /// 重写OnClick方法。  

  • /// </summary>  

  • protected override void OnClick(EventArgs e)  

  • {  

  • if (Click != null)  

  • {  

  • Click(this, new MyButtonClickAgre(this._num));  

  • }  

  • }  


  • 这个时候,我们就不需要基类的OnClick方法了,所以也不用再写上base.OnClick(e);。

    现在,我们重新生成一下项目,切换到WinForm设计器窗口,在工具箱中就能看到我们自定义的控件了。

    好,现在可以测一测这个新控件了。

    [csharp] view plaincopyprint?

  • public partial class Form1 : Form  

  • {  

  • public Form1()  

  • {  

  • InitializeComponent();  

  • }  

  • private void myButton1_Click(object sender, EventArgs e)  

  • {  

  • if (e is MyButtonClickAgre)  

  • {  

  • MyButtonClickAgre ce = e as MyButtonClickAgre;  

  • if (ce != null)  

  • {  

  • MessageBox.Show(ce.TheNumber.ToString());  

  • }  

  • }  

  • }  

  • }  

编辑时间 2019-04-04
影响力:7667

c# winform怎么updatesql数据库里面的信息

描述: 就是将第一个textbox的值更新为第二个textbox的值代码如下usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSys... 就是将第一个textbox的值更新为第二个textbox的值代码如下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;using System.Data.SqlClient;namespace WindowsFormsApplication1{ public partial class Form4 : Form { public Form4() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string leixing = firstleixing.Text; string usename = firstusename.Text; string passwowrd = firstpassword.Text; string shuoming = firstshuoming.Text; string leixings = afterleixing.Text; string usenames = afterusername.Text; string passwowrds = afterpassword.Text; string shuomings = aftershuoming.Text; string str3 = "server=xiaobai;database=EnHeng;Integrated Security=SSPI;"; SqlConnection conn3 = new SqlConnection(str3); conn3.Open(); string strsql = string.Format("update lalala set 账号类型 ='firstleixing.Text'where"); SqlCommand cmd = new SqlCommand(strsql, conn3); cmd.ExecuteNonQuery(); conn3.Close(); } }}

展开

这个解答帮助过6750人

在Button_完成中添加点击事件,但是你貌似没有一个ID来确定是修改哪条数据

追问

那怎么加代码,能不能教一下

编辑时间 2019-01-24
影响力:1589

为什么会在sql.open()这里报错?

描述: 说是System.InvalidOperationException:"ConnectionString"属性尚未初始化。这是代码usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usi... 说是System.InvalidOperationException:"ConnectionString"属性尚未初始化。

这是代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace MIS
{
public partial class LoginForm : Form
{
public LoginForm()
{
InitializeComponent();
}

private void btnlogin_Click(object sender, EventArgs e)
{

SqlConnection sqlCon = new SqlConnection();
sqlCon.Open();
SqlCommand sqlComGet = new SqlCommand();
sqlComGet.Connection = sqlCon;
sqlComGet.CommandText = "select * from Admin where AdminName=" + txtname.Text+ " and Adminpd" + txtpwd.Text;
SqlDataReader sqlDr = sqlComGet.ExecuteReader();
if (sqlDr.Read()) //帐号和密码正确
{

}
else //帐号或密码错误
{
MessageBox.Show("FBI WARNING:您输入的用户名或密码不对!"+"\r\n请重新输入!");
}
sqlCon.Close();
}
}
}
展开
这个解答帮助过2797人

错误很明显,数据库连接字符串没有定义好,SqlConnection sqlCon= new SqlConnection();这一句有问题啊,修改方法有两个:
1、改成
SqlConnection sqlCon= new SqlConnection( connectionstring);
2、在SqlConnection sqlCon= new SqlConnection();和sqlCon.open();之间加入一句sqlCon. connectionstring=connectionstring

编辑时间 2019-12-03
影响力:1688

C#excel出错

描述: usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.IO;usin... using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Excel = Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
using System.Reflection;
namespace Excel操作
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
button1.Text = "打开文件";
Excel.Application exapp = new Excel.Application();
Excel.Workbook book;
book = exapp.Workbook.Add();(这个地方的workbook出错)

}
}
}

错误 1 “Microsoft.Office.Interop.Excel.Application”不包含“Workbook”的定义,并且找不到可接受类型为“Microsoft.Office.Interop.Excel.Application”的第一个参数的扩展方法“Workbook”(是否缺少 using 指令或程序集引用?) D:\vs\Excel操作\Excel操作\Form1.cs 26 26 Excel操作
展开
这个解答帮助过5625人

你去搜索 C# EXCEL的代码。除了USING外,还要IMPORT一个DLL文件。不然系统怎么知道你Microsoft.Office.Interop.Excel.Application 这个CLASS呢?

编辑时间 2019-08-26