http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 24964|回复: 15

[C#皮肤] C#皮肤-皮肤使用须知与常见问题解决方案

[复制链接]
发表于 2012-11-17 15:08:21 | 显示全部楼层 |阅读模式
读部分
-------------------------------------------------------------------------------------------------------------
C#仿QQ皮肤-实现原理系列文章导航
http://www.sufeinet.com/thread-2-1-1.html

C#仿QQ皮肤-皮肤使用须知与常见问题解决方案
皮肤发布有一段时间了,多多少有一些朋友使用皮肤,也多多少少的也出现了不少问题,在这里我给大家表示歉意了,这些问题我会尽快解决的,因为我个人能力有现,还希望大家能都参与进来,我在这里给大家写点使用方法上,和技巧上的东西,希望能给大家以帮助,我以问答的方法来解决问题吗?1.皮肤的控件为什么不全?
   因为咱们的皮肤还是测试版本,现在只能使用一些常用的控件,其它控件我会尽快的更新上去,希望大家能理解。
2.皮肤的为什么在Windows2003和Visit下有边框,很难看?
   这个问题我正在解决,目前已有几个解决的方法,只是不太理想,大家请等待一下我会尽快解决这个问题,也希望大家尽量先在Xp系统下使用。因为Windows有透明效果所以不太方便处理;
3.皮肤的Combox控件怎么不能同时绑定Value和Text呢?
   大家肯定是也像平时一样这样写代码了吧
[C#] 纯文本查看 复制代码
//_dt_two是您自己加载过来的数据源
            comboBox1.DataSource = _dt_two;
            comboBox1.ValueMember = "id";
            comboBox1.DisplayMember = "name";

如果是正常的控件这样是没有问题的,但是我这个控件把里面的数据绘制了一下,加上了一个光标根随的效果,也应用上了皮肤,这样的话就不能使用这样的语句呢?
目前只能绑定Value值而不能绑定Text值,绑定的text值是不会正常显示的,这样问题我会想办法解决,也希望大家多出建议,我暂时给大家一个可行的方案
  我们可以使用Linq来解决
  大家还像平时写查询方法一样只查出id和name这样一个表
然后在帮助的时间这样绑定
[C#] 纯文本查看 复制代码
//_dt_two是您自己加载过来的数据源
for (int i = 0; i < _dt_two.Rows.Count; i++)
                {
                    comboBox1.Items.Add(_dt_two.Rows["uLogin"].ToString().Trim());
                }

                //设置当前项
                if (comboBox1.Items.Count != 0)
                {
                    comboBox1.SelectedIndex = 0;
                }

大家在想这样写不用只能用Text属性了吗?其实不是的,我提供一个类,大家可以使用他来取得相应的Value值 而不用去查询数据库
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace BaseFunction
{
    /// <summary>
    /// 处理一些控件的方法
    /// </summary>
    public class UI_Misc_Helper
    {
        /// <summary>
        /// 返回选中的Comobox中Text对应的value值或者是value对应的Text值
        /// </summary>
        /// <param name="combobox">combobox对象</param>
        /// <param name="dt_tables">要查询的表</param>
        /// <param name="Text">要查询的字段</param>
        /// <param name="Value">要返回的字段</param>
        /// <returns>int</returns>
        public static string GetComboBoxValueOrText(CRD.WinUI.Misc.ComboBox combobox, DataTable dt_tables, string Text, string Value)
        {
            //从dt_tables中查询出来Text对应是Value值
            var result = dt_tables.AsEnumerable().Where(fi => fi[Text.ToString().Trim()].ToString().Trim() 
                == combobox.Text.ToString().Trim()).FirstOrDefault();
            //把Value值返回
            return result[Value.ToString().Trim()].ToString().Trim();
        }

    }
}

使用方法也很简单
[C#] 纯文本查看 复制代码
string value=UI_Misc_Helper.GetComboBoxValueOrText(comboBox3, _dt_two, "uLogin", "uId");

这中间自然 是会有一些问题比如说有同名的就不好办了,如果真是那样的话就不建议大家使用这个了,不好意思 目前只能先到这里,也希望大家帮助我修改一下,并把解决方法告诉我,先谢谢
4.为什么我又加了一些控件会就都 不管用了?
  呵,在这里我是不建议大家修改的,因为现在还是测试,有很多东西不完整,所以大家不要自己重写和改动,谢谢大家配合;
       注:希望大家有什么好的建议和意见,提供给我,很是感谢,可以给我留言或是QQ联系我;如果大家在使用过程中还有其实问题的话可以直接在这里反应;
5.窗体不能居中怎么办?
  这个暂时给大家一段代码吧, 我们在下次版本更新到窗体里
[C#] 纯文本查看 复制代码
his.Location = new Point((System.Windows.Forms.Screen.GetWorkingArea(this).Size.Width - this.Width) / 2,
                    (System.Windows.Forms.Screen.GetWorkingArea(this).Size.Height - this.Height) / 2);


6.这个皮肤下载了之后怎么用啊?
     下载完成之后是这样的
    ComboBox5.png      
第一个文件夹ClientSystem是一个例子,其实两个项目是皮肤的组成部分我们只要加入到项目里就行了,全是源代码大家可以自己查看,再调用主窗体的时候有一点和平时的不同代码我放下面大家一看就知道 了
[C#] 纯文本查看 复制代码
Main main = new Main();
CRD.WinUI.Shared.MainForm = main;
main.Show();


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-8-10 20:39:42 | 显示全部楼层
真是难得给力的帖子啊,强烈支持楼主。
发表于 2013-8-26 21:21:05 | 显示全部楼层
不太了解这个的,觉得不错
发表于 2013-9-16 20:13:12 | 显示全部楼层
写的好啊,可是我在对皮肤如何加到工程中还存在疑问?求解答
发表于 2013-9-16 20:15:33 | 显示全部楼层
好贴啊。求问皮肤如何加到工程中啊?
 楼主| 发表于 2013-9-16 21:47:16 | 显示全部楼层
Vicper 发表于 2013-9-16 20:15
好贴啊。求问皮肤如何加到工程中啊?

这都是源码,直接加就行了吧,
就是几个类,或者是一个类库,和你自己建 的类库没有什么区别

发表于 2013-10-21 19:11:49 | 显示全部楼层
站长苏飞 发表于 2013-9-16 21:47
这都是源码,直接加就行了吧,
就是几个类,或者是一个类库,和你自己建 的类库没有什么区别

能不能给个简单的代码,还是不太明白什么引用。
 楼主| 发表于 2013-10-22 08:16:54 | 显示全部楼层
birdie 发表于 2013-10-21 19:11
能不能给个简单的代码,还是不太明白什么引用。

你下载皮肤吧,里面带的有例子http://www.sufeinet.com/thread-2-1-1.html
发表于 2013-12-2 22:37:53 | 显示全部楼层
LZ真的很是给力
发表于 2013-12-6 10:21:24 | 显示全部楼层
我那个皮肤加进去了,但是点击换肤按钮,皮肤框看不到,被窗体遮住了,位置还是一样
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-24 07:13

© 2014-2021

快速回复 返回顶部 返回列表