最近有个需求是在窗体的中间显示一个行列可预先指定的矩阵,不知道各位有没有什么好的思路。谢谢!

解决方案 »

  1.   

    用label控件排列不行吗? 或者直接drawtext
      

  2.   


    是将每个数字或字母用一个label显示,然后根据每个label的宽度来计算坐标么,有没有更方便一点的方法
      

  3.   

    需要让用户只看得到矩阵中的数字。整个窗体背景是黑色,字体为白色,用Listbox不好实现吧。
      

  4.   

    用RichTextBox吧
    之前有人问过.不过你的需求是字母和数字组合.可以参照以下
     private void button1_Click(object sender, EventArgs e)
            {
                //初始化数组并进行随机排序
                intoOrderByArray();
                //提取二维数组里的特定维的某个无素
                MessageBox.Show(identify[1, 5]);
            }        #region 初始化并进行随机排序
            private void intoOrderByArray()
            {
                this.richTextBox1.Text = "";//清空richtextbox            #region 初始化你的二维数组
                identify = new string[9, 9]{{"教", "律", "医", "导", "音", "美", "游", "旅", "羽"}, 
                                          {"师", "行", "生", "学", "乐", "术", "戏", "其", "球"}, 
                                          {"去", "吧", "看", "哦", "人", "个", "恶", "我", "他"}, 
                                          {"在", "中", "张", "值", "才", "从", "程", "吃", "是"}, 
                                          {"数", "所", "耍", "说", "的", "大", "对", "到", "飞"}, 
                                          {"放", "发", "非", "法", "副", "过", "给", "该", "故"}, 
                                          {"就", "将", "家", "键", "了", "类", "来", "浪", "连"}, 
                                          {"调", "同", "它", "和", "好", "后", "哈", "并", "帮"}, 
                                          {"平", "拍", "派", "快", "可", "框", "宇", "要", "敏"} 
                                          };
                #endregion            #region 二维数组转换为一维
                int x = 0;
                for (int count = 0; count < identify.GetLength(0); count++)
                {
                    for (int countone = 0; countone < identify.GetLength(1); countone++)
                    {
                        StrArray[x] = identify[count, countone].ToString();
                        x++;
                    }
                }
                #endregion            #region 对一维数组进行随机排序
                Random rd = new Random();
                for (int count = 0; count < StrArray.Length; count++)
                {
                    int tempCount = rd.Next(count, StrArray.Length);
                    string temp = StrArray[tempCount];
                    StrArray[tempCount] = StrArray[count];
                    StrArray[count] = temp;
                }
                #endregion            #region 用richtextbox输出
                x = 0;
                for (int count = 0; count < identify.GetLength(0); count++)
                {
                    for (int countone = 0; countone < identify.GetLength(1); countone++)
                    {//在此也可使其又转化为二维。下面是直接写到richtextbox里了。
                        identify[count, countone] = StrArray[x];//这行是把转换为二维数组
                        this.richTextBox1.AppendText(StrArray[x]);
                        this.richTextBox1.AppendText("\t");
                        x++;
                    }
                    this.richTextBox1.AppendText("\n\n");
                }
                #endregion
            }
            #endregion
      

  5.   

    还有就是richtextBox可以随意的设置字体及颜色等格式。
      

  6.   


    没有点击的要求,不过richtextbox有居中对齐的功能么,因为我要将矩阵放到窗体中间,好像没找到。
    Orz...............