当前位置:编程学习 > C#/ASP.NET >>

腾讯的面试,很基本,但是4年经验的我却不会,.NET WINFROM 的题目,受挫折想转行,大家会吗?会的话请告诉我。。。。。

在面试高级项目工程师的职位,腾讯的一个面试官问我:

WINFROM DATAGRIDVIEW 我想改变某一列中某几行中的几个字的颜色,而且这一列是可以换行的,也就是说文本比较多,还可以

有图片,图标等等。。。。他问我如何实现,我说RICHETEXTBOXCELL应该可以,他就让我去上机。。。。。


2小时后我被鄙视了。。。。。。。大家有谁能做出来吗???哎。。。。 --------------------编程问答-------------------- 在cellPainting事件中处理,还可以结合cellFormatting事件 --------------------编程问答-------------------- 腾讯的面试流程非常长,非常令人讨厌

dataGridView1.Rows[1].Cells[0].Style.ForeColor = System.Drawing.Color.Red; --------------------编程问答-------------------- b/s的就比较简单
aspx 
<%#   GetColorText(Eval( "Field ").ToString())%> 
cs 
protecte   string   GetColorText(string   fieldValue) 

     return   fieldValue.replace( "哈 ", " <font   color=red> 哈 </font> ") 
} --------------------编程问答-------------------- mark,学习了! --------------------编程问答--------------------
引用 2 楼 zzxap 的回复:
腾讯的面试流程非常长,非常令人讨厌

dataGridView1.Rows[1].Cells[0].Style.ForeColor = System.Drawing.Color.Red;


+1 --------------------编程问答-------------------- mark,学习了 --------------------编程问答-------------------- 人类缺乏联想世界还剩下神马


既然是去腾讯,你自然得关注他们的产品。

那么他们的主打产品是啥,QQ啊---QQ的特征是啥:winform,可以输入文本,可以换行,还可以

有图片,图标等等。。。,那么那个地方腾讯自己是怎么解决滴,很明显是一个htmleditor

lz回答RICHETEXTBOXCELL实际也没错,但是对比一下htmleditor他就不是一个好答案了 --------------------编程问答--------------------
引用 7 楼 wanghui0380 的回复:
人类缺乏联想世界还剩下神马


既然是去腾讯,你自然得关注他们的产品。

那么他们的主打产品是啥,QQ啊---QQ的特征是啥:winform,可以输入文本,可以换行,还可以

有图片,图标等等。。。,那么那个地方腾讯自己是怎么解决滴,很明显是一个htmleditor

lz回答RICHETEXTBOXCELL实际也没错,但是对比一下htmleditor他就不是一个好答案了


+1 --------------------编程问答-------------------- 很郁闷呀的。
没有找到好方法。 --------------------编程问答-------------------- 估计我比你还差,也很受打击,如果是平时研究研究也许还有可能,但面试 肯定是挂掉了 --------------------编程问答-------------------- 唉 大多数人差不多哦。。。白混了 --------------------编程问答-------------------- 呵呵
腾讯确实是很二比 --------------------编程问答-------------------- tracert --------------------编程问答-------------------- 微软的方法:是重写单元格模板类:
http://msdn.microsoft.com/zh-cn/library/7fb61s43(v=VS.80).aspx

也可以自己绘制的。。。。。。。。 --------------------编程问答--------------------
引用楼主 abcdefgabczz 的回复:
腾讯的一个面试官问我:
WINFROM DATAGRIDVIEW 我想改变某一列中某几行中的几个字的颜色,而且这一列是可以换行的,也就是说文本比较多,还可以有图片,图标等等。。。。他问我如何实现

这句话表名了腾讯对QQ下一步想改进什么,
目前QQ在发消息的时候,改变文本颜色是消息里所有的文本都改变颜色,
而无法做到只改变其中一个字或几个字的颜色 --------------------编程问答--------------------
引用 15 楼 kansousama 的回复:
引用楼主 abcdefgabczz 的回复:
腾讯的一个面试官问我:
WINFROM DATAGRIDVIEW 我想改变某一列中某几行中的几个字的颜色,而且这一列是可以换行的,也就是说文本比较多,还可以有图片,图标等等。。。。他问我如何实现

这句话表名了腾讯对QQ下一步想改进什么,
目前QQ在发消息的时候,改变文本颜色是消息里所有的文本都改变颜色,
而无法做到只改变其中一个字或几个……



+1 --------------------编程问答-------------------- 哎。。。C# WINFROM 难道DATAGRIDVIEW的RICHTEXTOBXCELL真的就这么难嘛? --------------------编程问答--------------------
引用 17 楼 abcdefgabczz 的回复:
哎。。。C# WINFROM 难道DATAGRIDVIEW的RICHTEXTOBXCELL真的就这么难嘛?


+1 --------------------编程问答--------------------
引用 16 楼 indusl 的回复:
引用 15 楼 kansousama 的回复:

引用楼主 abcdefgabczz 的回复:
腾讯的一个面试官问我:
WINFROM DATAGRIDVIEW 我想改变某一列中某几行中的几个字的颜色,而且这一列是可以换行的,也就是说文本比较多,还可以有图片,图标等等。。。。他问我如何实现

这句话表名了腾讯对QQ下一步想改进什么,
目前QQ在发消息的时候,改变文本颜色是消息里所有……
+1 --------------------编程问答-------------------- 大家都不会吗??

难到腾讯的真这么牛逼。。。。 --------------------编程问答-------------------- 目前QQ在发消息的时候,改变文本颜色是消息里所有……
-------------------------------
n年前就可以了,何况这也没什么难度 --------------------编程问答--------------------
引用 2 楼 zzxap 的回复:
腾讯的面试流程非常长,非常令人讨厌

dataGridView1.Rows[1].Cells[0].Style.ForeColor = System.Drawing.Color.Red;

你这是全部都红了吧,要求的是几个字,不是全部 --------------------编程问答-------------------- --------------------编程问答-------------------- 重绘单元格吧 --------------------编程问答-------------------- cellFormatting里面可以很好的解决 --------------------编程问答-------------------- 可怜的lz。
那是面试官自己遇到的一个问题,自己还没想好怎么解决,所以问你。 --------------------编程问答--------------------
引用 19 楼 javaniejian 的回复:
引用 16 楼 indusl 的回复:

引用 15 楼 kansousama 的回复:

引用楼主 abcdefgabczz 的回复:
腾讯的一个面试官问我:
WINFROM DATAGRIDVIEW 我想改变某一列中某几行中的几个字的颜色,而且这一列是可以换行的,也就是说文本比较多,还可以有图片,图标等等。。。。他问我如何实现

这句话表名了腾讯对QQ下一步想改进什么,
目前……


+1
--------------------编程问答-------------------- 两种方法:
1、将单元格的Rectangle获取,绑定一个RichTextBox或WebBrowser控件,并在单元格ReSize事件中调整绑定控件的位置。
2、继承DataGridViewCell单元格控件的那个类,重写一个,添加上去。 --------------------编程问答--------------------
引用 10 楼 zhy2003119 的回复:
估计我比你还差,也很受打击,如果是平时研究研究也许还有可能,但面试 肯定是挂掉了

同样的情况...感觉基础没打牢 --------------------编程问答-------------------- 我一直都做得BS...基本没做过winform。。。那我不是更要自杀? --------------------编程问答-------------------- 估计腾讯短期内不会做.Net的程序,针对国内盗版严重的情况,你觉得.net框架在中国的装机率是多少?2.0还稍微高一点,3.5少得可怜,4.0就不提了 --------------------编程问答-------------------- 除了继承cell自己重新写一个类,没别的好办法,自己实现onpaint --------------------编程问答-------------------- 要想控制具体哪几个字确实有点难度 --------------------编程问答-------------------- 可编辑文本的控件用richtextbox,当点击datagridview的某单元格时,让这个richtextbox盖住该单元格,并且显示和单元格一样的内容,在richtextbox里选择某些字,点击颜料盒里某种颜色,显示变色,和word里编辑文字一样吧;若数据不多,可以在数据绑定到datagridview上时,就动态的给每个单元格都盖上richtextbox,这样可以同时修改多个单元格内容 --------------------编程问答--------------------

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;

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

        private void HighLightText()
        {
            string[] keywords =   {"select","distinct","from","where","order","by","group","null"};
            string[] functions =   { "isnull", "count", "sum" };
            string[] strings =   { @"'((.|\n)*?)'" };
            string[] whiteSpace =   { "\t", "\n", "   " };

            rtbSql.SelectAll();
            rtbSql.SelectionColor = Color.Black;

            HighLightText(keywords, Color.Blue);using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;

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

        private void HighLightText()
        {
            string[] keywords =   {"select","distinct","from","where","order","by","group","null"};
            string[] functions =   { "isnull", "count", "sum" };
            string[] strings =   { @"'((.|\n)*?)'" };
            string[] whiteSpace =   { "\t", "\n", "   " };

            rtbSql.SelectAll();
            rtbSql.SelectionColor = Color.Black;

            HighLightText(keywords, Color.Blue);
            HighLightText(functions, Color.Magenta);
            HighLightText(strings, Color.Red);
            HighLightText(whiteSpace, Color.Black);
        }

        private void HighLightText(string[] wordList, Color color)
        {
            foreach (string word in wordList)
            {
                Regex r = new Regex(word, RegexOptions.IgnoreCase);

                foreach (Match m in r.Matches(rtbSql.Text))
                {
                    rtbSql.Select(m.Index, m.Length);
                    rtbSql.SelectionColor = color;
                }
            }
        }   

        private void btnHighLight_Click(object sender, EventArgs e)
        {
            HighLightText();
        }
    }
}
            HighLightText(functions, Color.Magenta);
            HighLightText(strings, Color.Red);≈
            HighLightText(whiteSpace, Color.Black);
        }

        private void HighLightText(string[] wordList, Color color)
        {
            foreach (string word in wordList)
            {
                Regex r = new Regex(word, RegexOptions.IgnoreCase);

                foreach (Match m in r.Matches(rtbSql.Text))
                {
                    rtbSql.Select(m.Index, m.Length);
                    rtbSql.SelectionColor = color;
                }
            }
        }   

        private void btnHighLight_Click(object sender, EventArgs e)
        {
            HighLightText();
        }
    }
}


--------------------编程问答-------------------- Mark ,DT的腾讯 --------------------编程问答--------------------
引用楼主 abcdefgabczz 的回复:
在面试高级项目工程师的职位,腾讯的一个面试官问我:

WINFROM DATAGRIDVIEW 我想改变某一列中某几行中的几个字的颜色,而且这一列是可以换行的,也就是说文本比较多,还可以

有图片,图标等等。。。。他问我如何实现,我说RICHETEXTBOXCELL应该可以,他就让我去上机。。。。。


2小时后我被鄙视了。。。。。。。大家有谁能做出来吗???哎。。。。


从面试策略角度讲,貌似你被人家牵着鼻子走了。这种问题明摆着不是5分钟内能解决的,面试官要求你上机处理,你是可以委婉的拒绝的(反正上了机也是个死,还不如赌一把),理由可以很充分:这种定制问题不是短时间能解决的,以他做上级测试不合适。如果他说他能解决(从腾讯已有产品上看应该不太可能)。那就赞扬赞扬他,抹抹稀泥好了。

 从技术角度讲,缺省的datagridview肯定无法支持此项功能,只能通过实现定制的datagridviwColum的方式处理,改造成支持RichText的列。即使实现了,行宽,列宽调整也不美观,如果想在20分钟内解决问题,就建议他把datagridview改成tableLayoutPanel控件好了。

--------------------编程问答-------------------- 阿里旺旺的输入  应该就是他想要的吧   没想到方法 看高手 --------------------编程问答-------------------- 小yy的女友筱筱都进腾讯了。。。楼主。 --------------------编程问答-------------------- 告诉他 你们肯定有现成的 拿来用就行了 --------------------编程问答-------------------- 不会,我是学JAVA的。。用过JSF一样是RAD基于组件开发,功能还不如。NET。。不过我想,这个表格里的数据你可以提出来进行修改不就好了吗?实在不行。。应该有办法自行绘制单元格的。。毕竟组件和绘制是无关的。。。 --------------------编程问答-------------------- 9楼呀, 做人也要讲良心,

拿个头像吓人干什么呀.... BS --------------------编程问答-------------------- 要求立即上机,这面试官水平也不高,怀疑tx的动机,估计就算lz你写出来,人家也不会要你,因为他招你就是为了解决这个问题,都已经写出来解决了,还要你做啥? --------------------编程问答-------------------- 呵呵,MARK --------------------编程问答-------------------- 本来没看到9楼的,因为42楼的话被9楼的头像吓到了 --------------------编程问答-------------------- 风语者已经给出答案了,另外我觉得楼主的说法也是正确的,怕是当时你卡在了如何封装richtextboxcell上了吧。richtextbox实现了这个功能,然后再把它封装一下就可以了。 --------------------编程问答-------------------- 通过模版列和控件,再绑定时判断一下值就可以实现了。 --------------------编程问答-------------------- 毕竟面试主要还是集中在意识流上,所以你一上机就落了下乘了(不管做的多好)。毕竟是面试,不是他让干啥就干啥,你完全可以在谈话技巧上把上机这件事情谈掉的 --------------------编程问答-------------------- --------------------编程问答-------------------- 这是个变态的问题 --------------------编程问答--------------------
引用 15 楼 kansousama 的回复:
引用楼主 abcdefgabczz 的回复:
腾讯的一个面试官问我:
WINFROM DATAGRIDVIEW 我想改变某一列中某几行中的几个字的颜色,而且这一列是可以换行的,也就是说文本比较多,还可以有图片,图标等等。。。。他问我如何实现

这句话表名了腾讯对QQ下一步想改进什么,
目前QQ在发消息的时候,改变文本颜色是消息里所有的文本都改变颜色,
而无法做到只改变其中一个字或几个……
+1 --------------------编程问答-------------------- N年前做过这样的,D7做的,是自己重绘的,onPain里好像 --------------------编程问答--------------------
引用 45 楼 wangdongmei802 的回复:
本来没看到9楼的,因为42楼的话被9楼的头像吓到了

你不是一个人。 --------------------编程问答--------------------
引用 15 楼 kansousama 的回复:
引用楼主 abcdefgabczz 的回复:
腾讯的一个面试官问我:
WINFROM DATAGRIDVIEW 我想改变某一列中某几行中的几个字的颜色,而且这一列是可以换行的,也就是说文本比较多,还可以有图片,图标等等。。。。他问我如何实现

这句话表名了腾讯对QQ下一步想改进什么,
目前QQ在发消息的时候,改变文本颜色是消息里所有的文本都改变颜色,
而无法做到只改变其中一个字或几个……


这个早就有了的~ --------------------编程问答-------------------- 大点的公司都这么装 --------------------编程问答-------------------- qssssssssss --------------------编程问答-------------------- 复制粘贴多了,细节记不清了,对面试有影响不? --------------------编程问答-------------------- 受挫了就好好学,到时候去羞辱腾讯 --------------------编程问答-------------------- win32   重绘就可以了 --------------------编程问答-------------------- 企鹅好牛··· --------------------编程问答-------------------- RichTextBox Cell in a DataGridView

引用:http://www.codeproject.com/KB/grid/RtfInDataGridView.aspx --------------------编程问答-------------------- 1.换行 
RowsDefaultCellStyle.WrapMode = DataGridViewTriState.true;   
AutoSizeRowsMode属性为:DisplayedCellsExceptHeaders

2.变颜色
dgvShow.Rows[n].DefaultCellStyle.ForeColor = Color.Red;    

3.图片列
//添加图片列
            DataGridViewImageColumn colImg = new DataGridViewImageColumn();
            colImg.Name = "照片";
            colImg.ValuesAreIcons = false;
            colImg.ImageLayout = DataGridViewImageCellLayout.Zoom;
            dgvShow.Columns.Add(colImg);            
            Image nowImg = 获取图片;
            dgvShow.Rows[i].Cells["照片"].Value = nowImg;
               --------------------编程问答-------------------- --------------------编程问答--------------------
引用 2 楼 zzxap 的回复:
腾讯的面试流程非常长,非常令人讨厌

dataGridView1.Rows[1].Cells[0].Style.ForeColor = System.Drawing.Color.Red;

只让一行中几个字变色,呀老大。
--------------------编程问答-------------------- 此处不留爷,自有留爷处 --------------------编程问答--------------------
引用 64 楼 flyerwing 的回复:
引用 2 楼 zzxap 的回复:
腾讯的面试流程非常长,非常令人讨厌

dataGridView1.Rows[1].Cells[0].Style.ForeColor = System.Drawing.Color.Red;

只让一行中几个字变色,呀老大。


只想到这种情况 --------------------编程问答--------------------
引用 31 楼 lengyu8 的回复:
估计腾讯短期内不会做.Net的程序,针对国内盗版严重的情况,你觉得.net框架在中国的装机率是多少?2.0还稍微高一点,3.5少得可怜,4.0就不提了

这个可不一定……貌似之前飞信就是将用到的核心类库封装了的……2.0的在1.1上照样能用。 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 39 楼 wuyazhe 的回复:
小yy的女友筱筱都进腾讯了。。。楼主。


求真相~~~ --------------------编程问答-------------------- 我也想知道 --------------------编程问答-------------------- 我也想知道 --------------------编程问答-------------------- winform的项目做得少,大都做做小应用,好奇进来看看 --------------------编程问答-------------------- 腾讯的面视都如此垃圾,可见中国的软件公司都这样了。作为面视官,问这个题目来面视别人,就已经表明了其人技术,境界不高。
这些表格的操作真的很重要吗?面视还需要上机去调试吗? --------------------编程问答--------------------
引用 73 楼 lchlovely 的回复:
腾讯的面视都如此垃圾,可见中国的软件公司都这样了。作为面视官,问这个题目来面视别人,就已经表明了其人技术,境界不高。
这些表格的操作真的很重要吗?面视还需要上机去调试吗?

那面试应该问什么? --------------------编程问答-------------------- 额呵 路过路过 --------------------编程问答-------------------- 为什么我的世界没有 你
--------------------编程问答-------------------- --------------------编程问答--------------------
引用 26 楼 maozhu_yimi 的回复:
可怜的lz。
那是面试官自己遇到的一个问题,自己还没想好怎么解决,所以问你。
笑话,这么简单的问题,放心吧,几乎没有公司会把技术面试当做技术攻关会议的 --------------------编程问答-------------------- 学习了
--------------------编程问答--------------------
引用 15 楼 kansousama 的回复:
引用楼主 abcdefgabczz 的回复:
腾讯的一个面试官问我:
WINFROM DATAGRIDVIEW 我想改变某一列中某几行中的几个字的颜色,而且这一列是可以换行的,也就是说文本比较多,还可以有图片,图标等等。。。。他问我如何实现

这句话表名了腾讯对QQ下一步想改进什么,
目前QQ在发消息的时候,改变文本颜色是消息里所有的文本都改变颜色,
而无法做到只改变其中一个字或几个字……

这句有点意思 --------------------编程问答-------------------- B/S的飘过

高级项目工程师问这种东西? --------------------编程问答-------------------- 不会 但是感觉也很困难 同情 --------------------编程问答-------------------- 除非在项目中做到过,一般情况下,也没人去研究这个吧,是我我也不会,哈哈 --------------------编程问答-------------------- 其实面试上机的情况都很正常,我发现 现在在国内的软件行业 在开始重视解决问题的能力和工作经验,文聘的比重在慢慢降低。所以面试上机的情况会有的。但我想上机的问题应该是一些有处理技巧或者考验经验的地方,一般不会有多困难。如果太难的话,估计面试官想刁难你或看你笑话了,这个时候就看你临机应变的能力了。 --------------------编程问答-------------------- mark... --------------------编程问答--------------------
引用 2 楼 zzxap 的回复:
腾讯的面试流程非常长,非常令人讨厌

dataGridView1.Rows[1].Cells[0].Style.ForeColor = System.Drawing.Color.Red;

顶 --------------------编程问答-------------------- 上机的时候是否可以同时上网. --------------------编程问答--------------------
引用 15 楼 kansousama 的回复:
引用楼主 abcdefgabczz 的回复:
腾讯的一个面试官问我:
WINFROM DATAGRIDVIEW 我想改变某一列中某几行中的几个字的颜色,而且这一列是可以换行的,也就是说文本比较多,还可以有图片,图标等等。。。。他问我如何实现

这句话表名了腾讯对QQ下一步想改进什么,
目前QQ在发消息的时候,改变文本颜色是消息里所有的文本都改变颜色,
而无法做到只改变其中一个字或几个字……


+1  我就觉得这功能蛮差劲的,改变就改变了所有,有时候只想把其中的某些字做下标注,这功能不能实现    --------------------编程问答-------------------- 高级还要做这个? qq很难混啊
--------------------编程问答-------------------- 面试官出来之前,都做了深刻的工作,他的问题既不会太难也不会太简单。否则都起不到考察的作用。

楼上的各位,看了大家的回复,一个感觉:你们真能装B。 --------------------编程问答-------------------- +1
引用 15 楼 kansousama 的回复:
引用楼主 abcdefgabczz 的回复:
腾讯的一个面试官问我:
WINFROM DATAGRIDVIEW 我想改变某一列中某几行中的几个字的颜色,而且这一列是可以换行的,也就是说文本比较多,还可以有图片,图标等等。。。。他问我如何实现

这句话表名了腾讯对QQ下一步想改进什么,
目前QQ在发消息的时候,改变文本颜色是消息里所有的文本都改变颜色,
而无法做到只改变其中一个字或几个字……
--------------------编程问答-------------------- 记得3年前去面试微软,结束时面试官很担忧地对我说:你这个年龄,还在做开发,又这么多东西不会,应该选择一些行业顾问的职位了。否则,危险!
当时我被打击的如世界末日,那时我妻子还刚刚怀孕。
不过今天我依然在做开发,拿着还过得去的工资。

结论:你不适合一个超级优秀的国度,不表示你就不适合生存。还有,面试官不是上帝。

--------------------编程问答-------------------- 。。。
调用gdi函数画么。。

--------------------编程问答-------------------- mark,学习了! --------------------编程问答-------------------- 不是所有的问题都适合面试的,工具的使用培训一下不就是OK了,最重要的还是其他层面的东西。 --------------------编程问答--------------------
引用 92 楼 sgchen2000 的回复:
记得3年前去面试微软,结束时面试官很担忧地对我说:你这个年龄,还在做开发,又这么多东西不会,应该选择一些行业顾问的职位了。否则,危险!
当时我被打击的如世界末日,那时我妻子还刚刚怀孕。
不过今天我依然在做开发,拿着还过得去的工资。

结论:你不适合一个超级优秀的国度,不表示你就不适合生存。还有,面试官不是上帝。


支持,有些面试一聊一看就算了。

WINFROM DATAGRIDVIEW 这种问题不能证明你的能力只能证明你对 WINFROM DATAGRIDVIEW 的熟练程度。 --------------------编程问答-------------------- 挺难的 --------------------编程问答-------------------- 高级项目工程师的面试应该会比较难吧,相信lz还是很牛的人 --------------------编程问答-------------------- 我感觉我什么都不会 --------------------编程问答-------------------- 大家各抒己见  吾等完全看不懂啊....
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,