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

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
  • 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.1K10

    .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、文字跨列居中显示 如果你不想合并单元格,又想让文字跨列显示。

    7.9K21

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

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

    7.1K21

    数据分析常用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.1K22

    【算法专题】回溯算法

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

    15110

    使用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.5K41

    创建随机数字或文本: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.2K40

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

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

    1.4K20

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

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

    5.8K10

    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

    24320

    常用快捷键大全

    Enter 完成单元格输入并选取下一个单元格 ESC 取消单元格输入 Alt+Enter 在单元格换行 Ctrl+Enter...用当前输入项填充选定单元格区域 Shift+Enter 完成单元格输入并向上选取上一个单元格 Tab 完成单元格输入并向右选取下一个单元格 Shift+Tab...,选定整个数据透视表 Ctrl+/ 选定包含活动单元格数组 Ctrl+Shift+O 选定含有批注所有单元格 Ctrl+\ 在选定选取与活动单元格值不匹配单元格...Ctrl+Shift+| 在选定选取与活动单元格值不匹配单元格 Ctrl+[ 选取由选定区域中公式直接引用所有单元格 Ctrl+Shift+{...ctrl+I:递增搜索,与ctrl+F不同是搜索期间不显示搜索对话框,且ctrl+F搜索下一个直接按Enter即可,而ctrl+I搜索下一个按ctrl+I或F3,Escape退出,连续按两次ctrl

    4.3K10
    领券