首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C# /i通过随机选取下一个单元格来填充字符串数组中的DataGridView,并且不想再次选取使用过的单元格

首先,对于这个问题,我们需要明确一些概念和背景知识。

C#是一种通用的面向对象的编程语言,由微软开发和维护。它广泛应用于Windows平台的软件开发,包括桌面应用程序、Web应用程序、移动应用程序等。C#具有简洁、安全和高效的特点,同时也支持面向对象编程、事件驱动编程和泛型编程等特性。

DataGridView是C#中的一个控件,用于在Windows窗体应用程序中显示和编辑数据。它提供了表格视图的功能,可以将数据以表格的形式展示,并允许用户进行编辑、排序和筛选等操作。

对于随机选取下一个单元格来填充字符串数组中的DataGridView,并且不想再次选取使用过的单元格,我们可以采取以下步骤:

  1. 创建一个字符串数组,并初始化为需要填充的值。
  2. 创建一个布尔型的二维数组,表示每个单元格是否已经被使用过。初始时,所有单元格都设为未使用。
  3. 使用随机数生成器,生成一个随机数作为行索引和列索引,来选择一个未使用过的单元格。
  4. 将选中的单元格标记为已使用。
  5. 将选中的单元格填充为数组中的对应值。
  6. 重复步骤3至5,直到所有单元格都被填充。

以下是一个示例代码,用于实现上述逻辑:

代码语言:txt
复制
using System;
using System.Windows.Forms;

public class Program
{
    private static Random random = new Random();
    
    public static void Main()
    {
        // 创建字符串数组,并初始化
        string[] data = { "A", "B", "C", "D", "E" };
        
        // 创建二维布尔数组,表示单元格是否已使用
        bool[,] usedCells = new bool[5, 5];
        
        // 创建一个DataGridView控件
        DataGridView dataGridView = new DataGridView();
        
        // 设置DataGridView的行数和列数
        dataGridView.RowCount = 5;
        dataGridView.ColumnCount = 5;
        
        // 填充DataGridView
        for (int i = 0; i < data.Length; i++)
        {
            string value = GetNextValue(data, usedCells);
            int row = dataGridView.Rows.Add();
            int col = dataGridView.Columns.Add(value, value);
            dataGridView.Rows[row].Cells[col].Value = value;
        }
        
        // 显示DataGridView
        Form form = new Form();
        form.Controls.Add(dataGridView);
        Application.Run(form);
    }
    
    private static string GetNextValue(string[] data, bool[,] usedCells)
    {
        int rowCount = usedCells.GetLength(0);
        int colCount = usedCells.GetLength(1);
        
        while (true)
        {
            int row = random.Next(rowCount);
            int col = random.Next(colCount);
            
            if (!usedCells[row, col])
            {
                usedCells[row, col] = true;
                return data[random.Next(data.Length)];
            }
        }
    }
}

请注意,上述示例代码仅为演示目的,并没有针对特定的DataGridView控件和数据进行调整。实际使用时,需要根据具体的需求进行适当的修改和优化。

腾讯云提供了一系列与云计算相关的产品和服务,例如:

  • 云服务器(CVM):提供虚拟化的云服务器实例,可用于部署和运行各种应用程序。
  • 云数据库MySQL版(CMQ):提供高可用性、可伸缩性和安全性的云数据库服务。
  • 人工智能机器学习平台(AI Lab):提供基于云计算的人工智能开发和训练平台,支持深度学习和机器学习算法。
  • 腾讯云存储(COS):提供可扩展、安全和高性能的云存储服务,用于存储和管理各种类型的数据。

您可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的详细信息和使用方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel图表学习69:条件圆环图

根据单元格包含的字母“R”、“Y”或“G”将它们填充为红色、黄色和绿色。这在工作表中很容易做到,但在图表中没有像这样更改颜色的机制。 可以使用VBA来实现,但本文使用了工作表公式。...单击两次选择第一个切片,填充红色,再按住Ctrl键的同时单击右箭头键三次,选择下一个要填充红色的切片,按F4键填充红色,重复这个过程使所有应该填充红色的切片填充红色。同样,填充黄色和绿色切片。...图8 取消选取“属性采用当前工作簿的图表数据点”前的复选框,如下图9所示。 ? 图9 目前的图表已完全格式化了,我们只需要创建公式来根据上方数据显示和隐藏切片。...单击图表并注意工作表中突出显示的单元格区域。拖动蓝色区域的边缘,使突出显示包括“值”列而不是“一”列。如下图10所示。 ?...图10 注意,现在圆环图的八个扇区中的每个扇区只有一个可见切片,并且这些切片根据单元格区域C3:C10中的值着色。但是,有一堆我们不想要的重叠标签。 这些标签对应于仍在图表中的隐藏切片。

7.9K30
  • C#二十八 数据绑定

    在.Net中提供了DataGridView控件使我们可以显示表格数据,DataGridView控件除了可以直接显示数据表数据外,还支持排序、数据绑定以及创建自己的单元格类型、自定义控件外观等高级功能。...用户可以自己设置单选、多行选择等选择模式,以便方便地选中列表中的数据。用户还可以在标题之间的列分隔符上双击,使左边的列自动按照单元格的内容展开或收缩。...下面是DataGridView控件的组成图(图15.9),我们将依据这幅组成图来详细讨论DataGridView单元格值的获取以及单元格、行、列等外观的设置。...通过这两个属性可以找到需要的单元格的值。...(); } DataGridView控件提供了CurrentCellAddress属性来获得选中单元格的列表和行标,如下代码修改DataGridView中选中的单元格中对应表中项的值: privatevoid

    11210

    RPA与Excel(DataTable)

    选定活动单元格周围的当前区域:Ctrl+Shift+*(星号) 选定包含活动单元格的数组:Ctrl+/ 选定含有批注的所有单元格:Ctrl+Shift+O(字母O) 在选定的行中,选取与活动单元格中的值不匹配的单元格...:Ctrl+\ 在选定的列中,选取与活动单元格中的值不匹配的单元格:Ctrl+Shift+| 选取由选定区域中的公式直接引用的所有单元格:Ctrl+[(左方括号) 选取由选定区域中的公式直接或间接引用的所有单元格...用于输入、编辑、设置格式和计算数据的按键 完成单元格输入并选取下一个单元:Enter 在单元格中换行:Alt+Enter 用当前输入项填充选定的单元格区域:Ctrl+Enter 完成单元格输入并向上选取上一个单元格...:Shift+Enter 完成单元格输入并向右选取下一个单元格:Tab 完成单元格输入并向左选取上一个单元格:Shift+Tab 取消单元格输入:Esc 向上、下、左或右移动一个字符:箭头键 移到行首:...插入、删除和复制单元格 复制选定的单元格:Ctrl+C 显示Microsoft Office剪贴板(多项复制与粘贴):Ctrl+C,再次按Ctrl+C 剪切选定的单元格:Ctrl+X 粘贴复制的单元格:

    5.8K20

    c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)

    这对于避免取消共享行的共享很实用。 当前的单元格能够通过设定 DataGridView 对象的 CurrentCell 来改变。...能够通过 CurrentCell 来设定 DataGridView 的激活单元格。将 CurrentCell 设为 Nothing(null) 能够取消激活的单元格。...2) 单元格的边框线样式的设定 单元格的边框线的样式是通过 DataGridView.CellBorderStyle 属性来设定的。...可是能够通过程序,调用 DataGridView.BeginEdit 方法,使单元格进入编辑模式进行编辑。...比起使用循环遍历,使用该事件来设定右键菜单的效率更高。可是,在DataGridView使用了DataSource绑定并且是VirtualMode的时候,该事件将不被引发。

    4.4K10

    .NET Core 仿魔兽世界密保卡实现

    将Cells中的数据拼成一个以逗号分隔的字符串中。以便于持久化的时候和Card类型的属性一起包在一个Json字符串中,看起来不会太长。...,使用0-100的随机值填充。...因为之前被简化过的Cells数据是个以逗号分割的string字符串,因此我们需要把它拆成数组,并转换类型回int,然后利用之前写的FillCellData()方法填充到Cells属性里。...同样使用Random类型,在给定的行列范围内随机选择给定数量的单元格,但不从Cells中取,因为我们无需返回单元格的值。...对于每一个需要验证的单元格: 在Cells中查找具有同样行列的单元格。 对比这两者的值是否相等,一旦遇到不相等直接返回false,无需再验证下一个单元格。

    1.1K30

    Excel表格中最经典的36个小技巧,全在这儿了

    技巧8、隐藏0值 表格中的0值如果不想显示,可以通过:文件 - excel选项 - 高级 - 在具有零值的单元格 ? 技巧9、隐藏单元格所有值。...如果要隐藏单元格的值,选取该区域,右键 - 设置单元格格式 - 数字 - 自定义 - 右侧文本框中输入三个分号 ;;; ?...技巧11、按月填充日期 日期所在单元格向下拖动复制后,打开粘贴列表,选取“以月填充” ?...技巧12、合并多个单元格内容 把列宽调整成能容易合并后字符,然后选取合并的区域 - 开始 - 填充 - 两端对齐 ? 合并后: ?...按上述步骤操作后,你试着修改黄色区域单元格:ok。你试着在黄色之外的区域修改或插入行/列,就会弹出如下图所示的提示。 ? 技巧29、文字跨列居中显示 如果你不想合并单元格,又想让文字跨列显示。

    8.1K21

    【算法专题】回溯算法

    回溯算法在搜索过程中维护一个状态树,通过遍历状态树来实现对所有可能解的搜索。...解数独 题目链接 -> Leetcode -37.解数独 Leetcode -37.解数独 题目:编写一个程序,通过填充空格来解决数独问题。...我们可以使用一个二维数组来记录每个数字在每一行中是否出现,一个二维数组来记录每个数字在每一列中是否出现。...如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。...每个单元格中的整数就表示这一单元格中的黄金数量;如果该单元格是空的,那么就是 0。 为了使收益最大化,矿工需要按以下规则来开采黄金: 每当矿工进入一个单元,就会收集该单元格中的所有黄金。

    17110

    Excel 常用的九十九个技巧 Office 自学教程快速掌握办公技巧

    7、重复上一次输入在单元格中输入内容按回车键进入下一个单元格后,再按组合键【Ctrl+D】即可以快速的重复上一次输入的内容。...16、查找重复值选取查找数据的区域,依次点击【开始】-【条件格式】-【突出显示单元格规则】-【重复值】设置选择重复值格式为【浅红填充色深红色文本】。...35、在合并后保留所有单元格的内容选取单元格区域,并把列宽拉到可以容下所有单元格合并后的宽度,点击菜单栏中的【开始】选项卡,选择【两端对齐】把多个单元格的内容合并到一个单元格中,在分隔的空隔处按组合键【...36、批量取消批注选取包含批注单元格区域后,点击菜单栏中的【审阅】-【删除批注】。...94、快速提取字符串中的数字单元格内手动输入目标值,接着按下 Ctrl+E,Excel 会自动识别截取规则,批量截取数字。

    7.2K21

    数据分析常用的Excel函数

    :LEFT / RIGHT / MID 替换单元格中的内容:REPLACE / SUBSTITUTE 查找文本在单元格中的位置:FIND / SEARCH 清除字符串空格 TRIM 清除字符串text...合并字符串以及单元格内容 截取字符串 LEFT:从text中,提取num_chars个字符(从左开始)。...在A1中,从位置3开始,提取2个字符 替换单元格中内容 替换指定位置:REPLACE 从“原字符串”的“开始位置”开始,选择“字符个数”个,替换为“新字符串” =REPLACE(原字符串, 开始位置..., 字符个数, 新字符串) 例子 从A1的位置1开始,选取4个字符串,替换为新的字符串“2018”。...3.多条件查询 在匹配数据时,往往条件不是单一的,那么就可以利用&将字段拼接起来,并且利用IF数组公式构建出一个虚拟的区域。

    4.2K22

    使用C#开发数据库应用程序

    string boolean bool 注意:C#中布尔类型的关键字与java不同,使用bool,C#中字符串数据类型是小写的。...2-3:C#中的数组 a.C#中的一维数组 (1)声明 语法: 数据类型[] 数组名; 例如:int[] arrya; (2)指定数组大小 例如:int[] array; array...(array[i]); } 注意:与java同样,是通过下标进行访问,在C#中我们把下标称为索引....,否则,就返回-1 string Join(string separator,string[] value) 把数组中value中的每个字符串用指定的分隔符separator连接,返回连接后的字符串...详细请看P214页 (1)创建窗体,设计窗体界面 (2)设置窗体中DataGridView的属性 (3)填充数据集,显示数据 (4)将修改后的数据提交到数据库 (5)实现按性别筛选功能 8-

    5.9K30

    Python让Excel飞起来:使用Python xlwings实现Excel自动化

    基本上,我们是在向单元格中写入字符串。这里,我们要在另一列中计算x轴的指数值。在下面的代码中,我们使用了“f-string”,这是从Python 3.6开始的一种改进的字符串格式语法。...然而,它需要一点VBA来允许Excel调用Python函数。 Python脚本 让我们首先编写一个简单的Python函数,该函数生成10个随机数,然后将它们放在Excel工作表单元格A1中。...单击该按钮,将在单元格A1至J1中填充10个随机数,如下图11所示。...图12 注意到,当键入函数时,square实际上会显示在函数列表中——我们可以像使用Excel内置函数一样使用Python函数,并且可以将单元格引用传递到函数中。...2.键入用户定义的函数时,单元格中会显示“Object Require”(对象要求)。确保在VBA编辑器菜单“工具->引用”中选取了“xlwings”,并将更改保存到相应的Excel文件中。

    9.7K41

    【NLP】ACL2020表格预训练工作速览

    具体来说就是从输入表中随机选取20%的列,在每一行的线性化过程中遮蔽掉它们的名称和数据类型。给定一列的表示,训练模型使用多标签分类目标来预测其名称和类型。...具体而言,在MCP目标中,列ci被遮蔽之后(单元值未被遮蔽),CVR通过这一列某一单元值的向量表示si, j>来恢复这一单元值的原始值。...TaPas从弱监督中得到训练,并通过选择表格单元格和选择性地应用相应的聚合运算符来预测结果。...为了适应这一点作者在进行预训练时,从描述中随机选取8~16个单词的文本片段。对于表,首先添加每个列和单元格的第一个单词,然后逐渐添加单词知道达到最大序列长度。为每个表生成10个这样的序列。 ?...预测正确的聚合操作中有14%是只选取一个单元格,并且可以直接从表中选取而不进行聚合。

    5.9K10

    创建随机数字或文本:RAND函数和RANDBETWEEN函数

    RAND函数 在Excel中,使用RAND函数创建随机数字。然后,可以使用随机数字列来排序或提取表中的记录。...要创建随机数字,在单元格中输入公式: =RAND() 示例1:赋随机的数字 1.在列A创建一系列文本,无论其代表什么。...图3 4.保持选中单元格区域D1:D25,单击鼠标右键,在快捷菜单中选取“排序——升序”命令,如下图4所示。 图4 保持弹出的对话框的默认选择,如下图5所示。...然而,在CHOOSE公式里使用RANDBETWEEN函数,可以从值列表中返回随机项。 为简单起见,本示例试图随机填充性别列。...公式如下: =CHOOSE(RANDBETWEEN(1,2),"Male","Female") 图7 使用单元格引用作为CHOOSE函数参数的值 下面的示例,RANDBETWEEN函数与CHOOSE函数组合

    4.4K40

    Excel小技巧33:工作表数据输入技巧

    控制单元格移动方向 很多人喜欢在单元格中输入完后,按下回车键,Excel会自动移到下一个单元格。我们可以设置这个移至的下一个单元格是下方的单元格还是右侧的单元格。...快速复制当前单元格中的数据 要将当前单元格中的内容复制到所选取的单元格区域的其他单元格中,选按F2键,再按Ctrl+回车键,如下图4所示。 ? 图4 7....快速填充数值 想要使用增加的数值填充单元格区域,先选中已输入数值的单元格,将光标移至该单元格的右下角填充句柄处,按下Ctrl键向下拖动,如下图5所示。 ? 图5 8....自定义列表 如果经常需要按顺序填充一系列值,可以自定义列表。单击“文件——选项”,在“Excel选项”对话框的“高级”选项卡中,单击“常规”下的“编辑自定义列表”按钮,如下图6所示。 ?...强制换行 当单元格中要输入较多的文本时,可以使用Alt+回车键来换行,使文本更易阅读,如下图10所示。 ? 图10 你还有什么好的工作表数据操作技巧,欢迎在下面留言分享。

    1.5K20

    MultiRow中文版技术白皮书

    MultiRow的设计思路 支持自由布局的架构设计 传统的表格类控件的布局都是严格的行和列结构,通过合并单元格完成特殊布局的需要。...在自由布局的基础上,MultiRow中增加了模板(Template)的概念。...如果用户有其他的第三方厂商开发的.NET控件,并且希望把它作为MultiRow的一个单元格使用,只有实现相关的接口就可以做到第三方控件的嵌入。...非绑定模式,即在不绑定到数据源的情况下,可以很方便的操作和显示数据。 虚拟模式,虚拟模式是为大型数据存储区而设计的,仅当数据需要显示的时候,由用户来操作单元格的填充,编辑和删除。...重视易用性 为了降低用户的学习成本,MultiRow采用了和DataGridView相似的接口设计,对于曾经使用过Microsoft DataGridView或者熟悉DataGridView接口设计的开发人员

    1.3K50

    小白学Python - 用Python制作 2048 游戏

    如果您对游戏不熟悉,强烈建议您先玩一下游戏,以便了解游戏的基本功能。 如何玩2048: 1.有一个4*4的网格,可以填充任意数字。最初,两个随机单元格中填充有 2。休息单元是空的。...当我们按下任意键时,单元格的元素会沿该方向移动,这样,如果该特定行(向左或向右移动的情况下)或列(向上和向下移动的情况下)包含任何两个相同的数字,它们就会得到加起来,该方向的极端单元用该数字填充自身,其余单元再次变空...3.网格压缩后,任何随机的空单元格都会被 2 填充。 4.按照上述过程,我们必须将任意单元格中的元素相加,使其加倍,得到 2048。如果我们能够做到这一点,我们就赢了。...可以通过转置然后向左移动来完成向上移动。 向下移动可以通过右移转置来完成。 程序中的所有逻辑都在注释中详细解释了。强烈建议仔细阅读所有评论。...for j in range(3): # 如果当前单元格与同一行中的下一个单元格具有相同的值,并且它们都不为空,则 if(mat[i][j] == mat[i][j + 1] and

    26420
    领券