在WinForm开发中,你认为什么操作最麻烦?或者说用起来不舒服?送分
在做程序的时候,你认为什么地方写起来麻烦,或者说用起来不舒服。比如说两个窗体之间传递数据,多个文本框数据的封装……等
说出来,送分。 --------------------编程问答-------------------- 重写控件,GDI画图和事件绑定 --------------------编程问答-------------------- 重写控件,GDI画图和事件绑定 --------------------编程问答-------------------- ?完全不知道说撒 --------------------编程问答-------------------- 委托 --------------------编程问答-------------------- 调用的Com组件总是释放不完 --------------------编程问答--------------------
同感,开放的部分太少了,完全不够控制 --------------------编程问答-------------------- UI的设计 --------------------编程问答-------------------- 两个窗体之间传递数据 --------------------编程问答-------------------- 多线程 --------------------编程问答-------------------- 比如说两个窗体之间传递数据 --------------------编程问答-------------------- 调用com组件和API,C#在这方面,简直就是个残废...唉,C/C++才是王道... --------------------编程问答-------------------- LZ的窗体间传参不是已经给你解决了吗,???不知道说些什么啊 --------------------编程问答-------------------- 多线程,界面设计。 --------------------编程问答-------------------- 多线程哪里不舒服,可以说详细点 --------------------编程问答-------------------- 两个窗体间传递数据,通过构造函数的参数。 --------------------编程问答--------------------
就是这个……C#把东西都封好了以至于想改都改不了……果然还是C/C++比较有爱…… --------------------编程问答--------------------
--------------------编程问答-------------------- 我是路过学习的,即将踏入此领域。 --------------------编程问答-------------------- .... --------------------编程问答-------------------- GDI画图 通信 --------------------编程问答-------------------- 做网络通信时,不知道怎么把struct与byte[]互相转换。。。 --------------------编程问答-------------------- 速度慢,占用空间大 --------------------编程问答-------------------- 不会的就不舒服 --------------------编程问答-------------------- 不会的就不舒服 说的有理
但楼主意思是会做但弄出来就是觉的不好,不完美的.....
窗体传值.... --------------------编程问答--------------------
同感 --------------------编程问答-------------------- 异步调用和使用COM时 --------------------编程问答-------------------- 看来WPF 的出现是个必然…… --------------------编程问答-------------------- 界面设计,设计出来稍微漂亮的界面,都是用图片弄出来的,窗体移动时很卡,
而且占用内存大。。。
编写向导也很要命。。。
--------------------编程问答--------------------
支持。界面设计也麻烦啊。貌似应该不是我们写代码的要考虑的! --------------------编程问答-------------------- 不会的就不舒服 --------------------编程问答-------------------- 我感觉WINFORM本身不难学.
但是调用COM和API最麻烦,
想想GDI+也忘了好多,是忘的最多一部分 --------------------编程问答--------------------
救命啊!
调用COM和API都没做过!
不会的就是麻烦 --------------------编程问答-------------------- 迭代,委托处理事件的时候比较麻烦 --------------------编程问答--------------------
…………相反,我觉得这两个是最爽的……
因为我以前做VB……不能继承……只能SubClass,很痛苦 --------------------编程问答--------------------
用API,CopyMemory
或者,你看看 Marshal类里面的ToStructure方法 --------------------编程问答-------------------- 已经很方便了.........也够简单了 --------------------编程问答-------------------- 菜鸟一只慢慢飞过,楼上的全看不懂。。 --------------------编程问答-------------------- 介面交互部分,麻烦又浪费时间 --------------------编程问答-------------------- 其实感觉最难的还是系统的结构,可能有点文不对题,但是这是我目前最大的困惑 --------------------编程问答-------------------- UI的设计
--------------------编程问答-------------------- 多线程 --------------------编程问答-------------------- 不会就不舒服 --------------------编程问答-------------------- 打印和批量输入,能把excel集成到c#中就好了。 --------------------编程问答-------------------- 老板改变主意 --------------------编程问答-------------------- 多线程的问题 --------------------编程问答-------------------- 多线程和GUI画图 --------------------编程问答-------------------- 委托和api --------------------编程问答-------------------- 调用其他语言写的动态链接库!很麻烦!很痛苦!
最近用C#写界面,C++写算法!谁知道整合的时候,指针的值传不出来,摸索中!!! --------------------编程问答--------------------
好像就是UI了 WPFの必然 --------------------编程问答-------------------- UI好做,就是调用本地dll不好弄. --------------------编程问答-------------------- Treeview 的 drag,从VB到C#都做得非常不友好,罗罗嗦嗦一大堆 --------------------编程问答-------------------- 在进行数据显示时,数据多时,赋值太麻烦
--------------------编程问答-------------------- 因人而异,因能力而不同。其实只是一个过程,在过程中学会思考与积累最重要! --------------------编程问答-------------------- 因人而异,因能力而不同。其实只是一个过程,在过程中学会思考与积累最重要! --------------------编程问答-------------------- 界面 --------------------编程问答-------------------- GDI画图~ --------------------编程问答-------------------- 1.InvalidOperationException窗体跨线程的不安全操作
解决:
1】可以通过将 CheckForIllegalCrossThreadCalls 属性的值设置为 false 来禁用此异常。这会使控件以与在 Visual Studio 2003 下相同的方式运行。----蠢办法
2】使用委托 delegate void SetTextCallback(string text);
private void SetText(string text)
{
// InvokeRequired required compares the thread ID of the
// calling thread to the thread ID of the creating thread.
// If these threads are different, it returns true.
if (this.textBox1.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.Invoke(d, new object[] { text });
}
else
{
this.textBox1.Text = text;
}
}
委托处理方法
ISynchronizeInvoke synchronizer;
synchronizer = this;
if (synchronizer.InvokeRequired)
{
MethodInvoker invoker = new
MethodInvoker(this.Close);
synchronizer.Invoke(invoker, null);
}
else
{ this.Close(); }
--------------------编程问答--------------------
--------------------编程问答-------------------- 2个窗体的值传递。和水晶报表 --------------------编程问答-------------------- 界面做得太难看 --------------------编程问答-------------------- 界面、委托与事件的关系 图形重绘 保存流文件 序列化 --------------------编程问答-------------------- 多线程异步、同步、死锁、安全等等。
#region" 结构体struct与字节数组 byte[] 的转换 "
/// 结构体转byte数组
/// </summary>
/// <param name="structObj">要转换的结构体</param>
/// <returns>转换后的byte数组</returns>
public static byte[] StructToBytes(object structObj)
{
byte[] bytes;
try
{
//得到结构体的大小
int size = Marshal.SizeOf(structObj);
//创建byte数组
bytes = new byte[size];
//分配结构体大小的内存空间
IntPtr structPtr = Marshal.AllocHGlobal(size);
//将结构体拷到分配好的内存空间
Marshal.StructureToPtr(structObj, structPtr, false);
//从内存空间拷到byte数组
Marshal.Copy(structPtr, bytes, 0, size);
//释放内存空间
Marshal.FreeHGlobal(structPtr);
//返回byte数组
return bytes;
}
catch (Exception ex)
{
BizLogic.LogWriter.AddSystemException(ex);
return bytes = null;
}
}
/// byte数组转结构体
/// </summary>
/// <param name="bytes">byte数组</param>
/// <param name="type">结构体类型</param>
/// <returns>转换后的结构体</returns>
public static object BytesToStuct(byte[] bytes, Type type)
{
object obj;
try
{
//得到结构体的大小
//mbox.msgbox(type.FullName);
int size = Marshal.SizeOf(type);
//byte数组长度小于结构体的大小
if (size > bytes.Length)
{
//返回空
return obj = null;
}
//分配结构体大小的内存空间
IntPtr structPtr = Marshal.AllocHGlobal(size);
//将byte数组拷到分配好的内存空间
Marshal.Copy(bytes, 0, structPtr, size);
//将内存空间转换为目标结构体
obj = Marshal.PtrToStructure(structPtr, type);
//释放内存空间
Marshal.FreeHGlobal(structPtr);
//返回结构体
return obj;
}
catch (Exception ex)
{
BizLogic.LogWriter.AddSystemException(ex);
return obj = null;
}
}
#endregion
--------------------编程问答-------------------- 非本线程创建的控件在其他线程中的安全 --------------------编程问答-------------------- 底层的东西,如果已经封装到.NET类库就会很方便,否则就会出现灾难性的后果。
希望.NET类库的后续版本能够将全部的API封装进去。 --------------------编程问答-------------------- 每个方面都还不够强! --------------------编程问答-------------------- 感觉控件不够丰富,自定义太麻烦了 --------------------编程问答-------------------- UI设计不象Webform那么方便
--------------------编程问答-------------------- 刚开始学,感觉都不舒服,哈哈! --------------------编程问答-------------------- 界面设计 --------------------编程问答-------------------- 用第三方控件的时候,在界面上把控件删除了,可是在***.Designer.cs中有垃圾代码,需要手工删除。
不知道vs自带的控件中有没有这种情况。 --------------------编程问答-------------------- 自己画图 --------------------编程问答-------------------- 1.子线程访问主线程的UI控件
2.调用API --------------------编程问答--------------------
同意 --------------------编程问答-------------------- 别人都说了这么多了哦。
1:C#写出来程序性能低
2:为什么微软不把framework的版本及时整合到Windows系统中去呢????现在都只有1.0的。
不集成到系统。net写的东西更本没办法平民化啊,别人运行一个你的程序还要下个几十兆的framework ,他懒得下走人。。。。 --------------------编程问答-------------------- 多态 --------------------编程问答--------------------
同感 --------------------编程问答--------------------
有道理 --------------------编程问答-------------------- GDI 和 API --------------------编程问答-------------------- 调用COM
一层层声明,一层层释放,很累。 --------------------编程问答-------------------- 不会的东西 我觉得麻烦.. --------------------编程问答-------------------- UI界面 --------------------编程问答-------------------- 麻烦的有委托,消息传递等. --------------------编程问答-------------------- 多线程,重写控件 --------------------编程问答-------------------- UI的设计
速度慢,占用空间大
打印和批量输入,能把excel集成到c#中就好了。
界面设计,设计出来稍微漂亮的界面,都是用图片弄出来的,窗体移动时很卡,
而且占用内存大。。。
编写向导也很要命。。。
介面交互部分,麻烦又浪费时间
不会的就不舒服 --------------------编程问答-------------------- 页面间的传值相对于WebForm来说麻烦得多了 --------------------编程问答-------------------- 1、多国语言,在设计时,有时候两种语言之间切换一下,其中一种语言的resource可能丢掉
2、多线程操作窗体界面,非要弄个delegate才能正常运作
3、界面布局,尤其是带有splitter的布局,比如:我想创建一个MDI程序,MDI主窗体左边是一个TreeView,然后我希望TreeView的右边有个splitter能够让用户改变treeview的大小。目前看来,靠简单的控件基本上没法实现
4、不支持ActionList。菜单和ToolStrip如果有相同的Action,还得编程去控制,跟Delphi差了一截
--------------------编程问答-------------------- GDI。3D方面还是少了点,wpf还没怎么研究。感觉不太方便 --------------------编程问答-------------------- GDI画图和事件绑定 --------------------编程问答-------------------- 水晶报表的制作还是太麻烦了 --------------------编程问答-------------------- 如果更好的释放资源[回复内容太短了!] --------------------编程问答--------------------
. --------------------编程问答-------------------- ...... --------------------编程问答-------------------- GDI画图和多线程的使用 --------------------编程问答-------------------- 跨线程控件使用!跨线程控件使用!跨线程控件使用! --------------------编程问答-------------------- 水晶报表设计部署还很幼稚 --------------------编程问答-------------------- 我是来接分的。。。回复内容太短了! --------------------编程问答-------------------- 资源释放问题,有时候释放得太慢了,还有就是控件的重写 --------------------编程问答-------------------- 控件开源就好了 --------------------编程问答-------------------- 多线程,重写组件GDI 很是郁闷 --------------------编程问答-------------------- 如何设计一个 可以复用的窗体感觉蛮难。
比如 客户管理 界面 有5个文本框共输入“客户姓名”等信息,如何使这个窗体在添加客户,修改客户等多个场合使用,不同场合往往有些共性和不同差异。
补充:.NET技术 , C#